Как изменить все значения столбцов (Nullable = True и Allow Zero Length = True) в таблице, кроме столбца PersonalID? Когда сценарий выполняется, я получаю сообщение об ошибке «-2147217887». При генерировании ошибок с несколькими шагами OLE DB проверяется каждое значение статуса OLE DB, если оно доступно. Никакой работы не было ». Это код только для одной таблицы. Мне нужно создать больше таблиц, поэтому установка свойства Nullable каждого столбца не является практичной. Пожалуйста, помогите!Изменить значения свойств столбца
Public Sub DBcreation()
Dim tbl As New Table
Dim cat As New ADOX.Catalog
Dim col As ADOX.Column
Dim prp As ADOX.Property
Dim oCn As ADODB.Connection
Dim sConStr As String
'Set Connection string
sConStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\mydbase.mdb" & ";" & _
"Jet OLEDB:Engine Type=4;"
' 1) Create the DataBase
cat.Create sConStr
' 2) Create Table name "PDetails"
tbl.Name = "PDetails"
' 3) Add Fields
With tbl.Columns
.Append "PersonalID", adInteger 'Number
.Append "GHName", adVarWChar, 50 'Text
.Append "FirstName", adVarWChar, 50 'Text
.Append "FHName", adVarWChar, 50 'Text
.Append "Surname", adVarWChar, 50 'Text
.Append "BirthDate", adDate
.Append "Gender", adVarWChar, 10 'Text
.Append "Address", adLongVarWChar 'Memo
.Append "Pincode", adInteger 'Number
.Append "MobileNo", adInteger 'Number
.Append "HomeNo", adInteger 'Number
.Append "MaritalStatus", adVarWChar, 10 'Text
.Append "Profession", adVarWChar, 50 'Text
.Append "BloodGroup", adVarWChar, 10 'Text
.Append "Photo", adVarWChar, 50 'Text
' 4) 'Set the field properties.
With !PersonaltID 'AutoNumber.
.ParentCatalog = cat
.Properties("Autoincrement") = True
.Properties("Description") = "Automatically " & _
"generated unique identifier for this record."
End With
With !BirthDate
Set .ParentCatalog = cat
.Properties("Jet OLEDB:Column Validation Rule") = _
"Is Null Or <=Date()"
.Properties("Jet OLEDB:Column Validation Text") = _
"Birth date cannot be future."
End With
End With
' 5) Save the Table to the DataBase
cat.Tables.Append tbl
' 6) Set Column Properties
For Each col In tbl.Columns
For Each prp In col.Properties
If col.Name <> "PersonalID" Then
If prp.Name = "Nullable" Then
prp.Value = True 'error generated
'-2147217887 - Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
End If
End If
Next
Next
'Clean up
Set tbl = Nothing
Set cat = Nothing
set prp = Nothing
End Sub
Просто маленькая опечатка «With! PersonaltID» AutoNumber. ' должен быть «With! PersonalID» AutoNumber. ' – jakdep