29. september 2000 - 11:20Der er
1 kommentar og 1 løsning
Connection til flere DB i Access2000 ADODB... hvordan
Er der en, der har VBA liggende, der viser mig HVORDAN jeg connecter til 3 forskellige databaser, sådan at jeg kan selecte og update på kryds og tværs. Jeg har hidtil blot sammenkædet tabellerne over i fælles db, CurrentDB, men hvordan arbejder jeg med forskellige DB - i Samme workspace, eller?
(Det her vil jeg:) 1. indlæse csv-fil - For hver linje i csv: 2. sammenligne med 2 eksisterende db\'s recordsets 3. oprette ukendte entiteter i én eller begge db, hvis entiteten er ny i enten den ene eller begge DB. 4. update\' info mellem de 2 db, således at de kender nøglen for tilsvarende entitet i den anden tabel. 5. meget mere 6. osv
Jeg kan nemt udføre det, hvis der er kæder, men den holder jo ikke i virkeligheden ;-)
På forhånd: Muchos Gracias Senõr - for alt hjælp...
Jeg har et script her, håber du kan bruge det: Option Explicit Option Compare database
Dim db as Database Dim rs as Recordset Dim td As TableDef Dim fl As Field
\'Åbne databaserne \'Her er der flere muligheder... DATABASE1.DatabaseName = App.Path & \"\\NAVN_PÅ_FIL\" DATABASE2.DatabaseName = App.Path & \"\\NAVN_PÅ_FIL2\" \'Eller sådan her Set db = Current DB() \'Kan bruges hvis en database findes på stedet. \'Eller sådan her Set dbWorkspace = DBEngine.Workspaces(0)
\'Når alle databaserne er åbne, så vil du måske sammenligne to celler i en record i hele databasen
Do until DATABASE1.eof or database2.eof if DATABASE1!NAVN-PÅ-CELLE = DATABASE2!Navn_På-Celle then msgbox \"De er ens!\" end if DATABASE1.Movenext DATAbase2.Movenext
Hvis du fra Access 2000 ønsker at arbejde med flere connections, opretter du flere connections.
Jeg går ud fra, at du har en reference til ADO (sat som standard).
Nedenstående kode er lidt triviel, men viser hvordan du opretter 3 connections, der opretter fobindelse til hhv. C:\\DB1.mdb, C:\\DB2.mdb samt C:\\DB3.mdb, og opretter et dynamisk recordset baseret på tblMain i hver database.
Du må selv tilrette recordset typen, samt evt. options i connection strengen.
---Kode start---
Public Function TestCon()
\'Deklarerer variable
Dim cnnCon1 As ADODB.Connection Dim cnnCon2 As ADODB.Connection Dim cnnCon3 As ADODB.Connection
Dim rstRecordset1 As ADODB.Recordset Dim rstRecordset2 As ADODB.Recordset Dim rstRecordset3 As ADODB.Recordset
\'Opretter objekter
Set cnnCon1 = New ADODB.Connection Set cnnCon2 = New ADODB.Connection Set cnnCon3 = New ADODB.Connection
Set rstRecordset1 = New ADODB.Connection Set rstRecordset2 = New ADODB.Connection Set rstRecordset3 = New ADODB.Connection
Set rstRecordset1 = Nothing Set rstRecordset2 = Nothing Set rstRecordset3 = Nothing
cnnCon1.Close cnnCon2.Close cnnCon3.Close
Set cnnCon1 = Nothing Set cnnCon2 = Nothing Set cnnCon3 = Nothing
End Function
---Kode slut---
Jeg håber, at det var svar på dit spørgsmål, ellers skriv igen.
Med venlig hilsen
LKP
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.