′zd變量采用變體類型
Function nonull(zd As Variant) As Variant
If IsNull(zd) Then
′字段沒有賦值,判斷其類型
If zd.Type = 12 Then
′字符型字段,賦空格
nonull = " "
Else
′數字型字段,賦0
nonull = 0
End If
Else
nonull = zd
End If
End Function
多字段記錄的錄入
如果我們需要編寫一個錄入程序,向某個SQL Server數據表(SJB)中錄入數據,而這個數據表中包含有多個字段,假設有30個字段,需通過Insert INTO語句完成。
Insert INTO SJB Value(A0,A1,A2,...,A29)
這里A0、A1...A29為字段的錄入值,其中,若字段類型為字符型,需用引號括起。并且,如果操作者在錄入數據時,對某些字段沒有賦予明確值,則還需借助前面給出的處理函數給這些字段賦予相應的0或‘ ’。雖然,我們在編程時可依照Insert INTO語句句法依次羅列出30個字段值,然而,變通一下,利用循環語句,不僅可以達到異曲同工的效果,而且使得程序不再冗長、煩瑣,可讀性好。下面列出相關程序片段:
...
Dim sqlstr As String
Dim sqlstr1 As String
Dim i As Integer
For i = 0 To 29
′rs.rdoColumns(I)為數據表中的某一字段
If rs.rdoColumns(i).Type = 12 Then
′字段類型為字符,在兩側用引號括起
′函數nonull()用于防止空值出現
sqlstr = sqlstr && "'" && nonull(A(i)) && "',"
Else
′字段類型為數字型
sqlstr = sqlstr && nonull(A(i)) && ","
End If
Next
′去掉最后一個逗號分隔符
sqlstr = Left(Trim(sqlstr), Len(Trim(sqlstr)) - 1)
′插入一條記錄到數據表中
sqlstr1 = "insert into sjb values(" && sqlstr && ")"
...
′執行插入語句
cn.Execute sqlstr1
...
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/