当前位置:编程学习 > VB >>

VB代码链接数据库问题

如下代码ExeCutesql "insert into user values('" & Text1.Text & "','" & Text3.Text & "','" & Text2.Text & "', 执行过程中无错误提示,执行后数据库无任何数据写入
补充:Private Sub Command1_Click()
            Dim A
            A = MsgBox("是否添加前记录?", vbYesNo + 32, "修改记录")
            If A = vbYes Then
               ExeCutesql "insert into qunti values('" & Text1.Text & "','" & Text3.Text & "','" & Text2.Text & "'," & B & ") ", Str_text
               MsgBox "数据已经保存!", vbOKOnly + 64, "成功"
               End If
End Sub

链接模块是
Public Function Connectstring() As String
'Dim Str_path As String
Str_path = CurDir() & "\" & "MISER.MDB"
Connectstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & Str_path & "';Persist Security Info=False"
End Function
追问:user换为其他字符也没用啊不好意思,贴不下,我补充到这里
Public Function ExeCutesql(ByVal Sql As String, Msgstring As String) As ADODB.Recordset
       Dim Cnn As ADODB.Connection
       Dim Rst As ADODB.Recordset
       Dim Stokens() As String 
       
       On Error GoTo executesql_error
       Stokens = Split(Sql) 
       Set Cnn = New ADODB.Connection
       Cnn.Open Connectstringexecutesql_exit:
     Set Rst = Nothing '释放记录集
     Set Cnn = Nothing '释放连接语句
     Exit Function
executesql_error:
       Msgstring = "查询错误:" & Err.Description
       Resume executesql_exit
End Function
恩谢谢
数据库很简单只有一个表
这个是我参考网上的源码写的
 Stokens = Split(Sql) 是将sql语句按关键字保存在数组中谢谢啊,期待明天你回答~If InStr("INSERT,DELETE,UPDATE", UCase$(Stokens(0))) Then
          Cnn.Execute Sql
          Msgstring = Stokens(0) & "查询成功"
       Else
          Set Rst = New ADODB.Recordset
          Rst.Open Trim$(Sql), Cnn, adOpenKeyset, adLockOptimistic 
          Set ExeCutesql = Rst
          Msgstring = "查询到" & Rst.RecordCount & "条记录"
       End If
还有一小段没地方写不下啊
答案:貌似user和SQL的关键字冲突,最好用[user]
其他:Dim A,sql
            A = MsgBox("是否添加前记录?", vbYesNo + 32, "修改记录")
            If A = vbYes Then
               sql= "insert into qunti values('" & Text1.Text & "','" & Text3.Text & "','" & Text2.Text & "'," & B & ") "
               MsgBox "数据已经保存!", vbOKOnly + 64, "成功"
               End If 
把sql的值取出来,贴出来看看,然后把数据库结构也贴出来看看 代码太多而且不全就不看了,告诉你调试的方法:
把所有 On Error GoTo 的语句注释掉,运行,应该会跳出错误提示。再把错误贴出来找人解决。
看你的ExeCutesql过程有错误处理,但没提示错误,你当然认为执行没错误了。 

上一个:vb中的函数是找什么来使用函数的 他们具体是怎么个形式来做的
下一个:vb的msdn不能使用

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,