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

为什么我的sql语句插入操作无效

我在公用模块中定义了一个sql语句操作函数
Public Function Connectstring() As String
'Dim Str_path As String
Str_path = App.Path & "\" & "database\MoneyMIS.mdb"
Connectstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & Str_path & "';Persist Security Info=False"
End Function

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 Connectstring
              
       If InStr("INSERT,DELETE,UPDATE", UCase$(Stokens(0))) Then
          Cnn.Execute Sql
        
       Else
          Set Rst = New ADODB.Recordset
          Rst.Open Trim$(Sql), Cnn, adOpenKeyset, adLockOptimistic 
          Set ExeCutesql = Rst
          
       End If
              
executesql_exit:
     Set Rst = Nothing 'ÊͷżÇ¼¼¯
     Set Cnn = Nothing 'ÊÍ·ÅÁ¬½ÓÓï¾ä
     Exit Function
executesql_error:
       
       Resume executesql_exit
End Function

然后用如下语句进行操作,但是没有作用,请问可能是什么原因呢
sqlstr = "insert into BorrowMoney " & "(BorrowMoneyDateIn,BorrowMoneyDateOut," & _
    "BorrowMoneyNameIn,BorrowMoneyNameOut,BorrowMoneyNum,BorrowMoneyBZ)" & _
         "values(" & "'" & Me.DTPicker1.Value & "'," & _
                    "'" & Me.DTPicker2.Value & "'," & _
                    num & "," & _
                    "'" & Me.Text1.Text & "'," & _
                    Val(Me.Text2.Text) & "," & _
                    "'" & Me.Text3.Text & "');"
Set rsdb = ExeCutesql(sqlstr, str_text)

其他的sql语句都没有问题可以正常使用,但是这个就不行,我试过了用可视化数据管理器来验证这条语句,没有问题,但是一放到程序中就没有作用了 --------------------编程问答-------------------- 什么错误解释? --------------------编程问答-------------------- 最要命的就是没有错误,运行正常,但是数据没有添加到数据库中 --------------------编程问答-------------------- 我用逐语句调试,结果发现程序调用
Public Function Connectstring() As String
'Dim Str_path As String
Str_path = App.Path & "\" & "database\MoneyMIS.mdb"
Connectstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & Str_path & "';Persist Security Info=False"
End Function

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 Connectstring

If InStr("INSERT,DELETE,UPDATE", UCase$(Stokens(0))) Then
Cnn.Execute Sql

Else
Set Rst = New ADODB.Recordset
Rst.Open Trim$(Sql), Cnn, adOpenKeyset, adLockOptimistic
Set ExeCutesql = Rst

End If

executesql_exit:
Set Rst = Nothing 'ÊͷżÇ¼¼¯
Set Cnn = Nothing 'ÊÍ·ÅÁ¬½ÓÓï¾ä
Exit Function
executesql_error:

Resume executesql_exit
End Function

的时候在
If InStr("INSERT,DELETE,UPDATE", UCase$(Stokens(0))) Then
Cnn.Execute Sql
之后直接跳出了这个函数,请问这个是什么原因? --------------------编程问答-------------------- 不是吧,把你运行的SQL语句发上来睇一下! --------------------编程问答-------------------- 我已经找到问题所在了,因为我自己改动过系统的时间显示格式,可能是这个造成数据不能正常写入数据库(我的数据中有日期格式的数据)。
但是现在又出现了一个问题,我把时间格式改回默认的之后,DTPicker的值写入数据库的时候有日期和时间,而这之前都是只有日期的,我怎么样才能让DTPicker的值写入数据库的时候能只要日期不要时间? --------------------编程问答-------------------- 你先把这人日期格式Format了再放到数据库就可以啦!
注意,Format(Date , "DD\MM\YYYY")一定要是对日期格式进行。
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,