sql = "Insert into BIAO1 (用户编号,用户姓名,用户类型,价格)" + " values (" + CStr(GoudianKahao) + ",'" + Rst1.Fields("用户姓名") + "','" + Rst1.Fields("用户类型") + "'," + CStr(Rst1.Fields("价格")) + ")"
RST1中的字段与BIAO1中字段属性完全一致,包括字段属性,字段大小,现在遇到的问题是如果SQL语句写成sql = "Insert into BIAO1 (用户编号,用户姓名,用户类型,价格)" + " values (" + CStr(GoudianKahao) + ",'" + Rst1.Fields("用户姓名") + "','" + Rst1.Fields("用户类型") + "'," + Rst1.Fields("价格") + ")"即CStr(Rst1.Fields("价格")) 写成Rst1.Fields("价格") 此字段属性是数值。
运行时会出错,为什么会出错。
而Rst1.Fields("用户姓名")字段不用加CSTR呢。
RST1中的字段与BIAO1中字段属性完全一致,包括字段属性,字段大小,现在遇到的问题是如果SQL语句写成sql = "Insert into BIAO1 (用户编号,用户姓名,用户类型,价格)" + " values (" + CStr(GoudianKahao) + ",'" + Rst1.Fields("用户姓名") + "','" + Rst1.Fields("用户类型") + "'," + Rst1.Fields("价格") + ")"即CStr(Rst1.Fields("价格")) 写成Rst1.Fields("价格") 此字段属性是数值。
运行时会出错,为什么会出错。
而Rst1.Fields("用户姓名")字段不用加CSTR呢。
' 函数: AddDQuotes
'
' 功能: 为一个字符串转换为CSV或SQL的一部分做引号处理,""""即是双引号"
'
' 返回: String
' 作者 : 杨过.网狐.cn
'
' 入口: strSrc 源字符串
'
Public Function AddDQuotes(ByVal strSrc As String) As String
Const CDQuote = """"
AddDQuotes = CDQuote & Replace(strSrc, CDQuote, CDQuote & CDQuote) & CDQuote
End Function'---------------------------------------------------------------------------------------
' 过程名 : AsString
' 时间 : 2010-2-28 13:46
' 作者 : 杨过.网狐.cn
' 功能 : 将可能为Null的变量转换为字符串型
' 说明 :
' 来源: http://topic.csdn.net/u/20100227/21/bd3a0139-8570-45f1-bc8c-09bbd08c6981.html
'送分100分:text1.text = rst1.fields(-姓名-) 时出现无效使用NULL的提示
'---------------------------------------------------------------------------------------
'
Function AsString(ByVal v1 As Variant) As String
On Error GoTo AsString_Error AsString = v1 On Error GoTo 0
Exit FunctionAsString_Error: AsString = ""
End Function
而Rst1.Fields("用户姓名")字段不用加CSTR呢。"1.确定两个表字段一致.
2.修改 "'," + Rst1.Fields("价格") + " ==>
"'," & Rst1.Fields("价格") & "
+ 和 & 的区别+
根据两边的操作数不同分几种情况
1、两边都是字符。则执行字符串连接功能
2、两边都是数字。则执行数学加法
3、两边有一个是数字字符,另外一个是数值,则自动将数字字符转换为具体的数值进行加法
4、两边有一个事非数字字符、另外一个事数字、那么就会报错,应为无法将非数字字符转换为数字。
&
无论两边是什么,都想将其转换为字符,然后进行字符连接。如果你要连接字符建议只用”&“
比如加 debug.printsql = "Insert into BIAO1 (用户编号,用户姓名,用户类型,价格)" + " values (" + CStr(GoudianKahao) + ",'" + Rst1.Fields("用户姓名") + "','" + Rst1.Fields("用户类型") + "'," + Rst1.Fields("价格") + ")" debug.print sqllz会看到值不是你想要的
2)是否可以赋空值由字段的定义决定——数据库基本知识。