Avatar billede mundt Nybegynder
03. juni 2002 - 10:29 Der er 6 kommentarer og
2 løsninger

Hente data i Access 2000

Kan man ikke hente data ind i et ADO recordset og loop'e igemmen det i Access 2000 uden at skulle oprette en ODBC-datasource ?

Grunden til at jeg gerne vil undgå at skulle oprette en ODBC-datasource er jeg skal distribuere databasen til klienter efter behov hvor der ikke er oprettet en ODBC-datasource.

Kunne jeg eventuelt få en kodestump hvor en tabel lægges i et recordset som loop'es igennem, med Access 2000 standardindstillinger (dvs. igen nye referencer)?
Avatar billede terry Ekspert
03. juni 2002 - 11:21 #1
Loads of code examples here (ADO). Choose VB ...
Avatar billede terry Ekspert
03. juni 2002 - 11:22 #2
Not quite sure why you mention ODBC-datasource, are you linking to SQL Server or something!
03. juni 2002 - 11:30 #3
Her er et eks. som kobler sig på en anden Access-database vha ADO:

Public Sub Demo_Af_Open_Recordset()
    Dim rs As New ADODB.Recordset
    Dim cn As ADODB.Connection
   
    Set cn = New ADODB.Connection
    cn.Provider = "Microsoft.Jet.OLEDB.4.0"
    cn.Open "C:\Dokumenter\Access\DinDatabase.mdb"
    Set rs = cn.Execute("Select * from [DinTabel]")
    Do Until rs.EOF
        Debug.Print rs![ID]
        rs.MoveNext
    Loop
    rs.Close
    cn.Close
End Sub
Avatar billede mundt Nybegynder
03. juni 2002 - 11:47 #4
Jeg har lavet en Access 2002 database og ønkser at åbne en tabel jeg har i samme.

Nedenstående (Som ligner dit 'thomasjepsen' eks.) skulle virke ville jeg umiddelbart mene:

    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
   
    Set rs = New ADODB.Recordset
    Set cn = New ADODB.Connection
   
    cn.Provider = "Microsoft.Jet.OLEDB.4.0"
    cn.Open CurrentDb.Name, "", ""
   
    rs.Open "JournalInfo", cn, adOpenKeyset, adLockOptimistic
    rs.MoveFirst
   
    Do While True
   
      Debug.Print rs!Field1
      rs.MoveNext
    Loop

    rs.Close
    cn.Close


Ved linie -    cn.Open CurrentDb.Name, "", ""
får jeg dog følgende fejl:

err.number          -2147467259
err.description    The database has been placed in a state by user 'Admin' on machine 'OL27309' that prevents it from being opened or locked.

Indtil videre kan jeg ikke finde nogen løsning på problemet?

Hvad siger I?
Avatar billede mundt Nybegynder
03. juni 2002 - 12:09 #5
Jeg har løst problemet!

Databasen skulle lige genstartes.

Nu ser min virkende kode ud som følger:

Sub SearhJournalInfo()

    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
   
    Set rs = New ADODB.Recordset
    Set cn = New ADODB.Connection
   
    cn.Provider = "Microsoft.Jet.OLEDB.4.0"
    cn.Open CurrentDb.Name, "", ""
   
    rs.Open "JournalInfo", cn, adOpenKeyset, adLockOptimistic
    rs.MoveFirst
   
    Do Until rs.EOF
   
      Debug.Print rs!Field1
      rs.MoveNext
    Loop

    rs.Close
    cn.Close
   
End Sub

Tak for hjælpen!
03. juni 2002 - 12:14 #6
Hej igen,

En lille kommentar: Hvis du kun arbejder på den aktuelle databasen (currentdb) så brug denne kode i stedet:

Sub SearhJournalInfo()

    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
   
    Set rs = New ADODB.Recordset
    Set cn = New ADODB.Connection
   
    Set cn = CurrentProject.Connection
   
    rs.Open "JournalInfo", cn, adOpenKeyset, adLockOptimistic
    rs.MoveFirst
   
    Do Until rs.EOF
   
      Debug.Print rs!Field1
      rs.MoveNext
    Loop

    rs.Close
    cn.Close
   
End Sub
03. juni 2002 - 12:16 #7
Endvidere burde du heller ikke behøve at bruge .Movefirst
Avatar billede mundt Nybegynder
03. juni 2002 - 12:55 #8
Tak!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester