20. april 2004 - 18:27Der er
15 kommentarer og 2 løsninger
Hentning af recordset via VBA
Nogen der ved hvorfor jeg får følgende fejlmed.
Compile error: User-defined type not defined
Når jeg på en knap kører:
Private Sub cmdPW_Click() 'Fejlen sætter ind lige nedenfor Dim rs As ADODB.Recordset Dim rs2 As ADODB.Recordset Dim cn As ADODB.Connection Set cn = New ADODB.Connection cn.ConnectionString = "driver={SQL Server};server=XXX;uid=YYY;pwd=ZZZ;database=DB" cn.ConnectionTimeout = 30 cn.Open
Set rs = New ADODB.Recordset rs.Open "TabAnsatte", cn, adOpenKeyset, adLockOptimistic
Set rs2 = New ADODB.Recordset rs2.Open "tblLogin", cn, adOpenKeyset, adLockOptimistic
Den vil åbenbart ikke genkende "ADODB.recordset" - er det noget med referencer(?) Jeg har ikke arbejdet meget med VBA til Access, men har sakset ovenstående sammen fra svaret på flere forskellige spørgsmål herinde.
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Hvis du får et fejlvindue med en knap der hedder Debug, så tryk på Debug og du kommer ind i VBA-editoren. Her trykker du på Run > Reset for at nulstille fejlene. Herefter på Tools > References og kontroller, at der ikke er referencer der står som mangler. Er der det, skal du sætte et checkmærke i boksen til venstre.
Hvis du kører med Access97, kan du ikke bruge koden, idet det er Access2000.
Den åbner selv VBA-editoren og jeg får en msgbox med den beskrevne fejl. Der er ikke nogle af referencerne, der står "Missing" ved. Jeg Access 2003, men filen er lavet i access 2000 filformat.
nhoff>Why do you need to open a recordset to an SQL Server table, you can link your tables using a DSN (ODBC) connection, or if you have Access 2000 or greater you can make a Data Project (ADP) database which connects directly to your SQL Server!
Your last comment requires a further explanation! If you already use an ODBC connection then you can link more than one table at the same time, furthermore you can have more than one DSN and link to more than one SQL Server/database
Terry> Følgende demonstrerer givetvis min manglende forståelse for VBA og recordsets: Ja, men den form hvor cmdPW ligger kan jo kun have en tabel som recordsource. Jeg skal bruge et felt fra "TabAnsatte" og et felt fra "tblLogin", som skal sammenholdes med et felt (uden kontrolelement) fra min form.
Hekla> Det er også det jeg hælder til, men som sagt står der ikke "missing" nogle steder og det eneste jeg kan se i reference-listen der rimer på ADO er "Microsoft ADO Ext. 2.7. for DDL and security" og den har jeg også prøvet at krydse af uden held.
Referencen skal hedde Microsoft ActiveX Data Objects ## Library, hvor ## er nummeret på versionen. Hvis du har fået svar på dit spørgsmål, skal du lukke det.
Beklager at responsen har været så lang tid undervejs. Hekla: Der var tale om en missing reference til ADO - jeg var bare ikke klar over hvilken. Terry: Du har ret i at det er meget nemmere at lave Dlookup - jeg blev bare forhippet på at lave det på den anden måde :-)
Jeg deler points'ene for indsatsen.
Hilsen Nikolaj
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.