Jag håller på att bygga ett adminprogram där det ska finnas en funktion att kopiera en del av en Accessdatabas(inte alla poster) från ett intranät till nuvarande webbplats där en liknande databas redan finns. Hur går man tillväga?
Ser båda databaserna exakt likadana ut struktur-mässigt? dvs, med tabeller/kolumner/frågor?
Isf:
- Ta en kopia på den första databasen (db1) detta blir db2
- trunkera alla tabeller i db2
- Loopa igenom posterna i db1 som du vill ha med
- Gör samtidigt i loopen insert i db2
- Flytta db2 till webplatsen
Om databaserna inte ser likadana ut kan du tex. använda Access-objketet från VB och skapa de tabeller/kolumner du vill ha och sedan loopa från db1 --> db2.
Hör av dig om du behöver kodexempel eller bättre förklaring!
Helst vill jag inte kopiera över den befintliga databasen som ligger på webbplatsen. Så alternativ två ovan skulle nog passa bättre, men jag förstår inte riktigt allt. Jag har inte hittat nåt Access-objekt i VB, vad heter objektet?
Alltså, det skulle vara önskvärt med någon kod eller nån bra länk.
Japp, då kör vi på exemplet där vi skapar själva databasen från noll.
Du behöver följande referenser:
"Microsoft Access X.0 Object Library"
"Microsoft ActiveX DataObjects 2.X"
"Microsoft ADO Ext. 2.X for DLL and security"
Jag har skrivit en kodsnutt här som visar hur du skapar både själva databasen, en tabell och en kolumn.
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
Dim accApp As Access.Application
Dim accDb As Access.CurrentProject
Dim adoCn As ADODB.Connection
Dim adoxTabl As ADOX.Table
Dim adoxCol As ADOX.Column
Dim adoxCat As ADOX.Catalog
Dim strCn As String
'Skapa själva databasen
Set accApp = New Access.Application
Call accApp.NewCurrentDatabase(App.Path & "\\db.mdb")
accApp.CloseCurrentDatabase
Set accApp = Nothing
'skapa en Connection och ange en connection-sträng
Set adoCn = New ADODB.Connection
strCn = "Provider=Microsoft.Jet.OLEDB.4.0;" & \_
"Data Source=" & App.Path & "\\db.mdb"
'Öppna connection
adoCn.Open strCn
'Skapa ny katalog
Set adoxCat = New ADOX.Catalog
'Ange connection
adoxCat.ActiveConnection = adoCn.ConnectionString
'Skapa ny tabell
Set adoxTabl = New ADOX.Table
'Ange namn på den nya tabellen
adoxTabl.Name = "jobs5"
'Skapa ny kolumn
Set adoxCol = New ADOX.Column
'Ange namn och egenskaper för kolumnen
adoxCol.Name = "ID"
adoxCol.Type = adInteger
'Lägg till kolumnen till tabellen
adoxTabl.Columns.Append adoxCol
Set adoxCol = Nothing
'Lägg till tabellen i katalogen (databasen)
adoxCat.Tables.Append adoxTabl
Set adoxTabl = Nothing
Set adoxCat = Nothing
Sen kan modda koden och lägga till fler/kolumner/tabeller som du vill. Du kan även skapa frågor m.m. om du så vill.
Okidoki, det exemplet verkar bra. Fast jag skulle helst av allt kunna kontakta databasen utifrån och tex. använda SQL-kommandon direkt på den befintliga databasen på webbplatsen. Går det?
Givetvis funkar säkert ovan nämnda exemplet alldeles utmärkt men jag tycker det verkar lite onödigt om man ska skapa nya databaser många gånger per dag.
Jag tackar dig Fredrik för tipsen! :)
Jodå, visst kan du använda SQL för att skapa tabeller och kolumner istället. Men du behöver själva Access-koden för att skapa databasen iaf.
När du väl har gjort det kan du använda "CREATE TABLE" / "ALTER TABLE" för att skapa och lägga till tabeller / kolumner.
Men jag ser inte varför det skulle vara lättare att använda än det här exemplet. Du kan ju bygga metoder för att lägga till dynamiska kolumner/tabeller. Men det är förstås en smaksak...
Det verkar som att jag inte har uttryckt mig tillräckligt tydligt :(.
Mitt huvudmål här i livet (i vart fall de närmsta timmarna) är att skyffla över "viss" data från en databas(intranät) till en liknade databas på en webbplats. Jag är inte primärt ute efter att skapa nya tabeller och liknande saker. Probelemet som jag ser det är att få kontakt med webbplatsens databas. Jag skulle helst av allt vilja göra en "connection" men inser att jag har ett problem med inloggning på webbplatsen.
Är mitt problem förståeligt? Det är inte lätt att vara nybörjare :h.
Ja, det är nog en koppling som jag är ute efter. Programmet ska köras på klienten. Berätta gärna hur man skriver en koppling till en webbserver där databasen ligger. Jag har under em. sökt på MSDN utan något positivt resultat.
Ursäkta om jag varit otydlig innan men jag har väl knappt vetat vad det var jag ville :h
256 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849