01. juli 2002 - 11:01Der er
5 kommentarer og 2 løsninger
VB6 og Access2000
Hvordan sætter jeg properties i en Access2000 database fra min VB code? Jeg ved at den her virker: cat.Tables("Comp_Table").Columns("WNNX").Properties("Jet OLEDB:Allow Zero Length").Value = True Men hvad med andre properties som required fields?????
Terry>>Jeg har kigget linket igennem og mener ikke at kunne finde svar på mit spørgsmål. Lidt konkret kode ville udløse gevinsten på 200 point. orca>>Hvorfor svarer du ikke på spørgsmålet og tjener 170 bonus point. Så skal jeg nok lade vær med at blande mig i hvad du vil bruge dem til.
Private Sub Command1_Click() On Error GoTo ErrHandler 'Intercept any errors
Dim strConn As String 'Work Dim strDBPath As String 'Path for new database Dim DBCatalog As ADOX.Catalog 'ADOX catalog reference Dim DBTable As ADOX.Table 'Database table definition Dim DBColumn As ADOX.Column 'Column object within a table
Set DBCatalog = New ADOX.Catalog 'Database root schema object DBCatalog.Create strConn 'Create new database
Set DBTable = New ADOX.Table 'Create a new table object DBTable.Name = "TestTable" 'Set name of table Set DBTable.ParentCatalog = DBCatalog 'Make Properties collections available
'---Create a column in the table... Set DBColumn = New ADOX.Column 'Column object to define With DBColumn 'Reference new column .Name = "TestColumn" 'Name the column .Type = adInteger 'Type of data .DefinedSize = 0 'Normal size of data .Attributes = adColFixed 'Column attribute flags .NumericScale = 0 'Numeric scaling factor .Precision = 10 'Digits of Precision End With 'Done with DBColumn reference
DBTable.Columns.Append DBColumn 'Add column to table
'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
Create Indexes: ' BeginCreateIndexVB Sub Main() On Error GoTo CreateIndexError
Dim tbl As New Table Dim idx As New ADOX.Index Dim cat As New ADOX.Catalog
'Open the catalog. ' Open the Catalog. cat.ActiveConnection = "Provider='Microsoft.Jet.OLEDB.4.0';" & _ "Data Source='c:\Program Files\Microsoft Office\" & _ "Office\Samples\Northwind.mdb';"
' Define the table and append it to the catalog 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."
' Define a multi-column index idx.Name = "multicolidx" idx.Columns.Append "Column1" idx.Columns.Append "Column2"
' Append the index to the table tbl.Indexes.Append idx Debug.Print "The index is appended to table 'MyTable'."
'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 Set idx = Nothing Exit Sub
CreateIndexError: Set cat = Nothing Set tbl = Nothing Set idx = Nothing
If Err <> 0 Then MsgBox Err.Source & "-->" & Err.Description, , "Error" End If End Sub ' EndCreateIndexVB
And keys: ' BeginCreateKeyVB Sub Main() On Error GoTo CreateKeyError
Dim kyForeign As New ADOX.Key Dim cat As New ADOX.Catalog
Terry>>Jeg er ked af at skuffe dig, trods din gode indsats, men jeg mener ikke at det eksempel du illustrere løser mit problem. Jeg har dog i mellemtiden løst problemet selv på denne måde: Dim DB As Database Dim tdf As TableDef Set DB = OpenDatabase("C:\User\demodata.mdb") Set tdf = DB.TableDefs("TESTTABLE") '-------------------------------------- tdf.Fields("TEST_ID").AllowZeroLength = True tdf.Fields("TEST_ID").Required = False Nå er der bare opstået et andet problem: Jeg kan tilsyneladende ikke erstatte "TEST_ID" med en variable. Kan det være rigtigt, for så har jeg et problem.
Terry>>Problemet med variablen skal du ikke tænke på, det var bare en afvigelse i den gængse syntaks(efter min opfattelse). For dine anstrengelser får du 50p, håber at det er iorden.
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.