Håller på att skriva om en applikation som är gjord i vb3.0 och i den applikationen har dom använt sig av dessa. Vilka motsvarigheter finns det i vb6.0 Du kan ju fortsätta att använda DAO så slipper du mycket av arbetet. Inget fel med det DAO. Dessutom är det ju skillnader mellan ADO och ADO.NET. Så fortsätter med DAO om det inte är så att något annat kräver att du byter. Det går utmärkt att köra den gamla koden i VB6 precis som den är om du kryssar för Microsoft DAO Object Library i Project References. Beroende på vilken servicepack du har kan det finnas lite olika versioner i din referenslista, 2.5/3.5 3.5 3.51 eller 3.6. Versionen 2.5/3.5 har jag haft problem med men alla högre har fungerat fint. vart ska jag skicka koden? Försökte kopiera in den här men fick bad gateway hela tiden. Finns det nån slags begränsning på hur mycket text som ryms i forumet. Det ska jag göra Använda istället för tabledef???
Dim tabell As Table (ska det vara ex.Dim rsTables As ADODB.Recordset i vb6.0)
Dim fld As Field (ska det vara ex.Dim fldField As ADODB.Field i vb6.0)
Dim tabellDef As New tabledef (vet ej)
Dessa variablar har också använts i vb3.0
Dim mdbAlder As Database
Dim listSet As Snapshot
denna kod adderar fält till en tabell i access i vb3.0
'Addera fälten till tabellen
Set fld = New Field
fld.name = "FTAG"
fld.type = DB_TEXT
fld.size = 5
tabellDef.Fields.Append fld 'Lägg fält till tabelldefinition
mdbAlder.TableDefs.Append tabellDef 'Lägg tabelldef till databas
nyTabellSkapad = True
hur gör jag i vb6.0 för att lägga till fält????
tacksam för hjälp /MatsSv: Använda istället för tabledef???
Om du ändå vill lösa det med ADO så finns det tre sätt.
* Använd SQL. Se Access hjälp fil. Sök på Alter Table.
<code>
ALTER TABLE tblCustomers
ADD COLUMN Address TEXT(30)
ALTER TABLE tblCustomers
ALTER COLUMN Address TEXT(40)
ALTER TABLE tblCustomers
DROP COLUMN Address
</code>
* Använd ADOX för att förändra http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/admscadoapireference.asp
<code>
' BeginCreateTableVB
Sub Main()
On Error GoTo CreateTableError
Dim tbl As New Table
Dim cat As New ADOX.Catalog
' Open the Catalog.
cat.ActiveConnection = "Provider='Microsoft.Jet.OLEDB.4.0';" & _
"Data Source='c:\Program Files\Microsoft Office\" & _
"Office\Samples\Northwind.mdb';"
tbl.Name = "MyTable"
tbl.Columns.Append "Column1", adInteger
tbl.Columns.Append "Column2", adInteger
tbl.Columns.Append "Column3", adVarWChar, 50
cat.Tables.Append tbl
Debug.Print "Table 'MyTable' is added."
'Delete the table as this is a demonstration.
cat.Tables.Delete tbl.Name
Debug.Print "Table 'MyTable' is deleted."
'Clean up
Set cat.ActiveConnection = Nothing
Set cat = Nothing
Set tbl = Nothing
Exit Sub
CreateTableError:
Set cat = Nothing
Set tbl = Nothing
If Err <> 0 Then
MsgBox Err.Source & "-->" & Err.Description, , "Error"
End If
End Sub
' EndCreateTableVB
</code>
* Tänk om vad det gäller desigenen. Det är vid väldigt få tillfällen det krävs att amn förändra datastrukturen. Du kan skicka med koden så kan vi hitta en alternativ lösning.<br>
<br>
Database - motsvaras av connection i ADO
Snapshot - är ett recordeset med statisk cursor i ADOSv: Använda istället för tabledef???
//Janne
PS Det går utmärkt att använda både DAO och ADO i samma program.Sv: Använda istället för tabledef???
Sv: Använda istället för tabledef???
Döper den till "Läsa in Till Databas"
la den under programmering allmänt
/Mats