Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

INSERT INTO语句的语法错误

兔斯基  发表于:2011-12-29 21:40:06  
复制

执行如下代码,出现INSERT INTO语句的语法错误,不知道出在哪里?

 

Private Sub 保存货商记录_Click()
On Error GoTo Err_保存货商记录_Click
    '判断“货商ID”等文本框是否为空
    If IsNull(Me![货商ID]) = True Then
        '弹出提示“货商ID”文本框不可以为空信息
        MsgBox "请输入“货商ID”,它不可以为空!", vbOKOnly, "输入“货商ID”"
        '把光标置于“货商ID”文本框内
        Me![货商ID].SetFocus
    ElseIf IsNull(Me![公司名称]) = True Then
        MsgBox "请输入“公司名称”,它不可以为空!", vbOKOnly, "输入“公司名称”"
        Me![公司名称].SetFocus
    ElseIf IsNull(Me![公司地址]) = True Then
        MsgBox "请输入“公司地址”,它不可以为空!", vbOKOnly, "输入“公司地址”"
        Me![公司地址].SetFocus
    ElseIf IsNull(Me![联系人]) = True Then
        MsgBox "请输入“联系人姓名”,它不可以为空!", vbOKOnly, "输入“联系人姓名”"
        Me![联系人].SetFocus
  
    Else
        '为保存计划“查询语句”字符变量赋值
        STemp = "INSERT INTO 供货商资料 "
        STemp = STemp & "( 货商ID,公司名称,公司地址,联系人,电话,传真,备注)"
        STemp = STemp & "VALUES ('" & Me![货商ID] & "','" & Me![公司名称] & "',"
        STemp = STemp & "'" & Me![公司地址] & "','" & Me![联系人] & "',"
        STemp = STemp & "'" & Me![电话] & "','" & Me![传真] & "',"
        STemp = STemp & "'" & Me![备注] & "')"
       
        '使用DoCmd对象的RunSQL方法执行查询
        DoCmd.RunSQL STemp
        '刷新“货商资料管理 子窗体”子窗体
        Me![供货商资料管理 子窗体].Requery
    End If
Exit_保存货商记录_Click:
    Exit Sub
Err_保存货商记录_Click:
    MsgBox Err.Description
    Resume Exit_保存货商记录_Click
End Sub

 

Top
浪淘沙 发表于:2011-12-30 00:57:54

原方案 动态SQL语句,改下面这句试试

 

STemp = STemp & "'" & Me![备注] & "');"     SQL语句结尾加分号。

 

方案二 静态SQL语句,写入绝对路径,在RUNSQL时再取值

Dim STemp
        STemp = "INSERT INTO 供货商资料 "
        STemp = STemp & "( 货商ID,公司名称,公司地址,联系人,电话,传真,备注) "
        STemp = STemp & "VALUES ( forms![XX]![货商ID],forms![XX]![公司名称],"
        STemp = STemp & "forms![XX]![公司地址],forms![XX]!![联系人],"
        STemp = STemp & "forms![XX]![电话],forms![XX]![传真],"
        STemp = STemp & "forms![XX]![备注]);"

 

方案二串起来一句话也可以:

STemp = "INSERT INTO 供货商资料 ( 货商ID,公司名称,公司地址,联系人,电话,传真,备注) VALUES ( forms![XX]![货商ID],forms![XX]![公司名称],forms![XX]![公司地址],forms![XX]!![联系人],forms![XX]![电话],forms![XX]![传真],forms![XX]![备注]);"

没实例,自己调试看看



兔斯基 发表于:2011-12-30 10:31:31
一楼方案二可行

浪淘沙 发表于:2011-12-30 12:09:52

,备注)"   

 

楼主,又看了一下,原文里这个括号是否是中文状态啊?



兔斯基 发表于:2012-01-04 09:49:06
我特别注意了,确定是英文状态的!

总记录:4篇  页次:1/1 9 1 :