27. oktober 2003 - 22:37Der er
27 kommentarer og 2 løsninger
Er der en super ekspert som kan lave en kode som kan..
Har 2 databaser som indeholder same tabeller, er der en VBA kode som kan kontrollere om felterne i tabellerne også er ens og hvis ikke oprettes disse felter automatisk.??
Efter ti år i London, Madrid, Paris og Utrecht kommer Sabios AI-fokuserede program af arrangementer om kundeoplevelser, ‘Disrupt’, for første gang til Danmark.
Mit firma har udviklet program der kan nøjagtig dette. Den holder også styr på indexes, defaultværdier osv...... Jeg kan dog ikke give dig koden gratis...Er det privat eller forretningsmæssigt du skal bruge det?
I så fald er du nok ikke interesseret i at betale for det. Det bedste jeg kan gøre for dig er så at give dig et par retningslinjer...
Du skal lave et VB program der åbner de 2 databaser. Du bør bruge DAO og anvende samlingerne tabledefs, querydefs, indexes på objektet database. Dette giver dig mulighed for at checke om tabeller, forspørgsler og indexes eksisterer. For hver tabledef, skal du så bruge samlingen fields, til at checke om alle felter eksisterer..
Det burde kunne goeres ved at loebe igennem feltnavnene og chekke om de er forskellige:
dim db1 as database dim db2 as database dim tdf1 as tabeldef dim fld1 as field dim tdf2 as tabledefs dim fld2 as field dim i as integer dim x as integer dim SameTable as Boolean
set db1 = currentdb setdb2 = opendatabase("c:\dindatabase.mdb")
with db1 for each tdf in .tabledefs
with db2 for each tdf2 in .tabledefs sametable = true for i = 1 to tdf.fields.count if tdf.field(i).Name = tdf2.field(i).Name then 'Tabellerne har pt samme struktur else sametable = false 'Tabellerne er forskellige end if next i 'Hvis sametable stadig er true er de to tabeller ens og du kan kalde en funktion her. next tdf2 end with
next tdf end with
Denne funktion antager: 1) At felterne i tabellerne ligger i samme raekkefoelge 2) At navnene paa tabellerne ikke noedvendigvis er ens
'overchord' har rettet lidt i koden, meeen den virker ikke rigtig!
Dim db1 As database Dim db2 As database Dim tdf1 As TableDefs Dim fld1 As Field Dim tdf2 As TableDefs Dim fld2 As Field Dim i As Integer Dim x As Integer Dim SameTable As Boolean
Set db1 = CurrentDb Set db2 = opendatabase("c:\testDB.mdb")
With db1 For Each tdf In .TableDefs
With db2 For Each tdf2 In .TableDefs SameTable = True For i = 1 To tdf.Field.Count If tdf.Field(i).Name = tdf2.Field(i).Name Then 'Tabellerne har pt samme struktur Else SameTable = False 'Tabellerne er forskellige End If Next i 'Hvis sametable stadig er true er de to tabeller ens og du kan kalde en funktion her. Next tdf2 End With
Terry>>I never said that ThomasJeppesen>>LJ Software og C2 System ApS schoesler >> Du kan få programmet som du bare skal kalde med 2 parametre. En til den eksisterende base, og en til master basen (med alle de rigtige felter osv). Men jeg kan desværre ikke udlevere koden til hele programmet....
'overchord' gider du prøve koden af, kan ikke få den til at virke?
Private Sub Command0_Click() Dim db1 As database Dim db2 As database Dim tdf1 As TableDefs Dim fld1 As Field Dim tdf2 As TableDefs Dim fld2 As Field Dim i As Integer Dim x As Integer Dim SameTable As Boolean
Set db1 = CurrentDb Set db2 = opendatabase("c:\testDB.mdb")
With db1 For Each tdf In .TableDefs
With db2 For Each tdf2 In .TableDefs SameTable = True For i = 1 To tdf.Field.Count If tdf.Fields(i).Name = tdf2.Fields(i).Name Then 'Tabellerne har pt samme struktur Else SameTable = False 'Tabellerne er forskellige End If Next i 'Hvis sametable stadig er true er de to tabeller ens og du kan kalde en funktion her. Next tdf2 End With
whats the status on this question, does anyone have an answer for Jan or have we all given up? Poot guy is getting desperate here :o)
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.