Attributes 属性示例 (VB)
此示例演示列的 Attributes 属性。 将其设置为 adColNullable 允许用户将 Recordset Field 的值设置为空字符串。 在这种情况下,用户可以区分数据未知的记录以及数据不适用的记录。
' BeginAttributesVB
Sub Main()
On Error GoTo AttributesXError
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim colTemp As New ADOX.Column
Dim rstEmployees As New Recordset
Dim strMessage As String
Dim strInput As String
Dim tblEmp As ADOX.Table
' Connect the catalog.
cnn.Open "Provider='Microsoft.Jet.OLEDB.4.0';data source=" & _
"'Northwind.mdb';"
Set cat.ActiveConnection = cnn
Set tblEmp = cat.Tables("Employees")
' Create a new Field object and append it to the Fields
' collection of the Employees table.
colTemp.Name = "FaxPhone"
colTemp.Type = adVarWChar
colTemp.DefinedSize = 24
colTemp.Attributes = adColNullable
cat.Tables("Employees").Columns.Append colTemp.Name, adWChar, 24
' Open the Employees table for updating as a Recordset
rstEmployees.Open "Employees", cnn, adOpenKeyset, adLockOptimistic, adCmdTable
With rstEmployees
' Get user input.
strMessage = "Enter fax number for " & _
!FirstName & " " & !LastName & "." & vbCr & _
"[? - unknown, X - has no fax]"
strInput = UCase(InputBox(strMessage))
If strInput <> "" Then
Select Case strInput
Case "?"
!FaxPhone = Null
Case "X"
!FaxPhone = ""
Case Else
!FaxPhone = strInput
End Select
.Update
' Print report.
Debug.Print "Name - Fax number"
Debug.Print !FirstName & " " & !LastName & " - ";
If IsNull(!FaxPhone) Then
Debug.Print "[Unknown]"
Else
If !FaxPhone = "" Then
Debug.Print "[Has no fax]"
Else
Debug.Print !FaxPhone
End If
End If
End If
.Close
End With
'Clean up
tblEmp.Columns.Delete colTemp.Name
cnn.Close
Set rstEmployees = Nothing
Set cat = Nothing
Set colTemp = Nothing
Set cnn = Nothing
Exit Sub
AttributesXError:
If Not rstEmployees Is Nothing Then
If rstEmployees.State = adStateOpen Then rstEmployees.Close
End If
Set rstEmployees = Nothing
If Not tblEmp Is Nothing Then tblEmp.Columns.Delete colTemp.Name
Set cat = Nothing
Set colTemp = Nothing
If Not cnn Is Nothing Then
If cnn.State = adStateOpen Then cnn.Close
End If
Set cnn = Nothing
If Err <> 0 Then
MsgBox Err.Source & "-->" & Err.Description, , "Error"
End If
End Sub
' EndAttributesVB