各为英雄,呜呜。已经晚上4:30啦,还是没有眉目愁死我啦
Dim objCn As New Connection, objRs As New Recordset
'===============打开数据库函数=======================Private Sub kai()    '建立数据库连接
        objCn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                                      "Data Source=" & App.Path & "\hd.mdb;"
   
     objCn.Execute ("insert into user(xingming,xingbie,nianling,dianhua,qq,youxiang,dizhi,zhaopian) values('" + t1.Text + "','" + Combo1.Text + "','" + t3.Text + "','" + T4.Text + "','" + T5.Text + "','" + T6.Text + "','" + T7.Text + "',pic)")    lss.Caption = "数据库打开"
     
     Exit Sub
End Sub系统竟然报告插入语发错误,我怎么没看出来啊,大家看看哪里的问题啊。。呜呜
pic是我在模块中定义的全局变量,可以取出值来user是表名

解决方案 »

  1.   

    给你个方法
    dim sql as string
    sql="insert into user(xingming,xingbie,nianling,dianhua,qq,youxiang,dizhi,zhaopian) values('" + t1.Text + "','" + Combo1.Text + "','" + t3.Text + "','" + T4.Text + "','" + T5.Text + "','" + T6.Text + "','" + T7.Text + "',pic)"debug.print sql  '断点在这里,在immediate window看看有什么错误
    objcn.excute sql
    从你的语句来看
    "insert into [user](xingming,xingbie,nianling,dianhua,qq,youxiang,dizhi,zhaopian) values('" + t1.Text + "','" + Combo1.Text + "','" + t3.Text + "','" + T4.Text + "','" + T5.Text + "','" + T6.Text + "','" + T7.Text + "',pic)"
    另外你的pic到底是什么?你的zhaopian这个字段怎么设计的?如果你要存一个地址的话,你的pics是变量的话
    "insert into [user](xingming,xingbie,nianling,dianhua,qq,youxiang,dizhi,zhaopian) values('" + t1.Text + "','" + Combo1.Text + "','" + t3.Text + "','" + T4.Text + "','" + T5.Text + "','" + T6.Text + "','" + T7.Text + "'," & pic & ")"
    如果你要存图片本身进去的话可不是这么做了
      

  2.   

    1、字符串使用英文单引号界定
    2、变量pic连接有误:  "',pic)" 应为 "'"+pic+")"
      

  3.   

    'user为系统关键字,不建议用作表名与字段名,一定要用则需要用方括号括起来
    objCn.Execute ("insert into [user](xingming,xingbie,nianling,dianhua,qq,youxiang,dizhi,zhaopian) values('" + t1.Text + "','" + Combo1.Text + "','" + t3.Text + "','" + T4.Text + "','" + T5.Text + "','" + T6.Text + "','" + T7.Text + "',pic)") 
      

  4.   

    因字段类型不明,至少有几处可疑:
    1、字符形需要加单引号,数字形不需要;
    2、照片存的是文件地址还是二进制流,二进制流不能这样存入数据库;
    3、年龄是数字还是日期,日期型需要加#号;
    4、表名不要用系统关键字 user
    请lz确认后再说
      

  5.   

    感谢各位英雄的抬爱,呜呜。我的数据库全部是string   至于照片我是存一个字符串路径,然后把这个路径赋给Picture1,在显示数据的时候就可以调用图片了,具体函数是这样的:
    '===============转移图片函数===================
    Private Sub zhuan()
    On Error GoTo DealError
        lss.Caption = "开始存储--->"
        '======================================================
        '下面将取到的图片拷贝到项目的照片文件夹
        Dim X, z As String
        X = pic
        z = App.Path & "\照片\" & t1.Text & ".jpg"
        FileCopy X, z
        pic = z
        lss.Caption = "开始存储--->图片转移完毕"
        '======================================================
        lss.Caption = "开始-->图片转移完毕-->资料保存完毕"
        Exit Sub
    DealError:
        MsgBox "程序执行出错,错误信息如下:" & vbCrLf & Err.Description, vbCritical + vbOKOnly, "学员管理系统"End Sub
    ‘==============================================================================
    Private Sub Command3_Click()
        '添加或替换图片
        CommonDialog1.DialogTitle = "选择图片文件"
        CommonDialog1.Filter = "图片(*.jpg)|*.jpg"
        CommonDialog1.ShowOpen
        If CommonDialog1.FileName Like "*.jpg" Then
            picName = CommonDialog1.FileName
            
            '将Picture1的图片缩放
            '================================================
            Dim p As Single, cc As New StdPicture
         Set cc = LoadPicture(picName)
         If cc.Height / Picture1.ScaleHeight < cc.Width / Picture1.ScaleWidth Then
             p = Picture1.ScaleWidth / cc.Width
             Picture1.PaintPicture cc, 0, (Picture1.ScaleHeight - cc.Height * p) * 0.5, Picture1.ScaleWidth, p * cc.Height
         Else
             p = Picture1.ScaleHeight / cc.Height
             Picture1.PaintPicture cc, (Picture1.ScaleWidth - cc.Width * p) * 0.5, 0, p * cc.Width, Picture1.ScaleHeight
         End If        '================================================
            '存入全局变量
            pic = picName
        Else
            picName = ""
            Picture1.Picture = LoadPicture()
        End If
    End Sub
      

  6.   

    众位大侠经过你们的牛逼指点,呵呵,我已经可以插入数据库了,语句是
    objCn.Execute ("insert into [user](xingming,xingbie,nianling,dianhua,qq,youxiang,dizhi,zhaopian) values('" + T1.Text + "','" + Combo1.Text + "','" + t3.Text + "','" + T4.Text + "','" + T5.Text + "','" + T6.Text + "','" + T7.Text + "','" + pic + "')")第一点[user]
    第二点'" + pic + "'
    可是遇到新的问题:“对象关闭时不允许操作”错误
    ’===========具体调用是这样的===========================
    Private Sub Command1_Click()'调用转移图片函数
    zhuan'调用开数据库函数
    kai'调用关数据库函数
    guan
    End Sub
    '===============转移图片函数===================
    Private Sub zhuan()
    On Error GoTo DealError
        lss.Caption = "开始存储--->"
        '======================================================
        '下面将取到的图片拷贝到项目的照片文件夹
        Dim X, z As String
        X = pic
        z = App.Path & "\照片\" & T1.Text & ".jpg"
        FileCopy X, z
        pic = z
        lss.Caption = "开始存储--->图片转移完毕"
        '======================================================
        lss.Caption = "开始-->图片转移完毕-->资料保存完毕"
        Exit Sub
    DealError:
        MsgBox "程序执行出错,错误信息如下:" & vbCrLf & Err.Description, vbCritical + vbOKOnly, "学员管理系统"End Sub'===============打开数据库函数=======================Private Sub kai()    '建立数据库连接
       
    Dim objCn As New Connection
         objCn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                                          "Data Source=" & App.Path & "\hd.mdb;"
       
         objCn.Execute ("insert into [user](xingming,xingbie,nianling,dianhua,qq,youxiang,dizhi,zhaopian) values('" + T1.Text + "','" + Combo1.Text + "','" + t3.Text + "','" + T4.Text + "','" + T5.Text + "','" + T6.Text + "','" + T7.Text + "','" + pic + "')")
        lss.Caption = "数据库打开"
         
         Exit Sub
    End Sub
    '===============关闭数据库函数=======================
    Private Sub guan()
    'On Error GoTo DealError
        '关闭数据库连接,释放对象
        objCn.Close‘==问题在这个里出现    Set objCn = Nothing
        lss.Caption = "开始-->图片转移完毕-->库打开-->库关闭-->资料保存完毕"
        
    '=======重置照片======
        picName = ""
        Picture1.Picture = LoadPicture()
        '重置图片暂存变量
        pic = ""
        Exit Sub
    'DealError:
        'MsgBox "程序执行出错,错误信息如下:" & vbCrLf & Err.Description, vbCritical + vbOKOnly, "学员管理系统"End Sub
        
      

  7.   

    objCn.Close
    改成:
    if objcn.state<>adstateclosed then objcn.close
      

  8.   

    您的意思是说我那句SQL语句执行完毕以后,自动关闭了?所以我多关了一次?