Toon posts:

Access (frontend) en SQL Server (backend)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb de volgende de situatie.

Ik heb een inlog formulier gemaakt in Access (Access Project). Nu wil ik na het invoeren van de gebruikersnaam en wachtwoord deze controleren in de tabel Personeel.

In de code gebruik ik de volgende code:

Dim db as DAO.Database
Dim rst as DAO.Recordset

set db = CurrentDb()
set rst = OpenRecordset("Personeel", dbOpenDynaset)

Hier gaat het dus fout, omdat ik de database niet lokaal hebm aar op een SQL server op school wordt CurrentDb niet gevonden. Hoe kan ik dit oplossen?

Heeft iemand hier ervaring mee? Voorbeelden zijn welkom!

Alvast bedankt voor de moeite!

Groeten,

Remco

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 22:06
Weet je zeker dat de server wel benaderbaar is?
probeer eens:
-server pingen
-server odbcpingen
-verbinding maken met osql.exe / query analyser

Roomba E5 te koop


  • aardbeix15
  • Registratie: Maart 2001
  • Niet online

aardbeix15

100%fruit pers je er niet uit!

Het lijkt me toch het meest nuttig om eerst een valide (ODBC)-connectie met de aldaar gehiste SQL-server op te zetten. Wanneer dit valide is kan je in Access gewoon gebruik maken van die resource.

snel zeggen: 'De koetsier poetst de postkoets met postkoetspoets'
levensmotto: 'vroeg gedaan is lang gerelaxed!'.


Verwijderd

Als je de mogelijkheid hebt (Access 2000 e.v.) zou ik ADO ipv DAO gebruiken. ADO begrijpt
wat meer van andermans databases. Het klasse-model van ADO steekt wel ietsje anders in elkaar dan DAO.

Je code
code:
1
set rst = OpenRecordset("Personeel", dbOpenDynaset)

zou moeten zijn
code:
1
set rst = CurrentDB.OpenRecordset("Personeel", dbOpenDynaset)

maar dat geeft DAO nog een hoop keuzemogelijkheden hoe hier een dataset van te maken. Nu kan je als extra parameters van OpenRecordset opgeven dat het om een tabel gaat, maar netter is
code:
1
set rst = CurrentDB.OpenRecordset("SELECT * FROM Personeel", dbOpenDynaset)

Overigens is niet gezegd dat de SQL server van je school dynasets ondersteund. Dan zul je moeten spelen met cursortype en lock-methode (transisolatie level) totdat je een cursostype hebt die de server slikt en jij kan updaten (als je dat zou willen). Kijk hiervoor eens naar de documentatie van OpenReordset.

[ Voor 3% gewijzigd door Verwijderd op 24-12-2004 15:04 ]


  • Peetman
  • Registratie: Oktober 2001
  • Laatst online: 20:12

Peetman

Tjah....

Je kan ook de tabellen naar de sql server linken.

Verwijderd

Topicstarter
Jongens,

sorry voor de late reactie. Maar het is allemaal gelukt.

Ik heb de volgende code gebruikt:

Private Sub knpAanmelden_Click()
On Error GoTo Err_txtwachtwoord

If IsNull(Me.txtGebruikersnaam) Or IsNull(Me.txtWachtwoord) Then
Me.txtGebruikersnaam.SetFocus
Exit Sub
End If

Dim connection As ADODB.connection
Dim rstPersoneel As ADODB.Recordset
Dim strSQLPersoneel As String
Dim strGebruikersnaam As String
Dim strWachtwoord As String
Dim strConnection As String
Dim strZoekGebruiker As String
Dim strGebruikersnaamForm As String
Dim strWachtwoordForm As String
Dim mark As Variant
Dim stDocName As String
Dim stLinkCriteria As String

strSQLPersoneel = "SELECT * FROM PERSONEEL INNER JOIN VESTIGING ON PERSONEEL.VestigingNr = VESTIGING.VestigingNR"


'Openen verbinding
strConnection = "Driver={SQL Server};SERVER=practicum-in.aii.avans.nl;DATABASE=IVT1;UID=****;PWD=******;"


Groeten,

Remco
Pagina: 1