表有二十几个字段,其中一个是日期字段,在窗体分别用text,dtpiker等控件通过DATASOURCD和DATAFIELD绑定到所有字段,通过RS.UPDATA来更新修改,但是总是无法更新成功,提示:-2147217888:客户事件句柄调用了一个提供程序中的非重入方法.经多次测试,发现是日期格式的这个字段的问题,dtpiker的值无法更新到access中的日期字段中。
我已经在ACCESS中将这个字段设成短日期格式,在控件格式上也设置为短日期格式,怎么,但是还是老样子,请问我要怎么写才能通过?
难道非要写CMD.COMMANDTEXT=一大堆的&&&?我可是有二十几个字段,还有其他的一些表都是十几二十个字段,每次都写sql的&&&?
**************************************************
能不能麻烦大家多打几个字啊?哭ing,在数据库版发了一周,只有一个回复,还只有几个字:“设置有问题”,说句不好听的,这不是废话吗?这叫啥回答啊?
16 个解决方案
#1
使用自定义格式
yy-mm-dd
这样的自定义格式。
yy-mm-dd
这样的自定义格式。
#2
在哪里改成这种格式?dtpiker控件上?不行,照旧出现-2147217888的错误
#3
update 的时候 convert(char(10),'2006-11-11 10:25:32',120)
转化一下看看
转化一下看看
#4
楼主可以把你dtpiker赋值的sql语句写出来吗?
#5
Private Sub Form_Load()'载入窗体
rS.Open "分店", cN, adOpenKeyset, adLockOptimistic
If rS.EOF Then
rS.AddNew
rS.Fields(2).Value = Date
rS.Fields(3).Value = Date
End If
Set DTP1.DataSource = rS
Set DTP2.DataSource = rS
DTP1.DataField = rS.Fields(2).Name
DTP2.DataField = rS.Fields(3).Name
For i = 0 To 21
If i <> 2 And i <> 3 Then Set Text1(i).DataSource = rS
Next i
For i = 0 To 21
If i <> 2 And i <> 3 Then Text1(i).DataField = rS.Fields(i).Name
Next i
End Sub
***************************
Private Sub Command1_Click()'保存按钮按下事件
Dim sqlStr As String
On Error GoTo errxxx
If Len(Text1(0).Text) <> 5 Then
MsgBox "分店代码只能为5位数字"
Exit Sub
End If
rS.Update
Exit Sub
errxxx:
MsgBox Err & ":" & Err.Description
End Sub
第一个是frmload的事件,如果为空就新增一行,如果不空就直接绑定,后面是各个控件绑定到各个字段
第二个是窗体上的保存按钮按下时,保存记录,其他的记录都可以保存,只有这两个日期保存不了
我是一个新手,对VB的很多细节不是很了解,不过我知道可以用SQL写cmd.commandtext来执行sql语句更新,我尝试着写了一下,好象很麻烦,很吃力,而且很容易出错,我不想通过那样来实行,我想直接通过这个rs.updata就实现所有的更新
rS.Open "分店", cN, adOpenKeyset, adLockOptimistic
If rS.EOF Then
rS.AddNew
rS.Fields(2).Value = Date
rS.Fields(3).Value = Date
End If
Set DTP1.DataSource = rS
Set DTP2.DataSource = rS
DTP1.DataField = rS.Fields(2).Name
DTP2.DataField = rS.Fields(3).Name
For i = 0 To 21
If i <> 2 And i <> 3 Then Set Text1(i).DataSource = rS
Next i
For i = 0 To 21
If i <> 2 And i <> 3 Then Text1(i).DataField = rS.Fields(i).Name
Next i
End Sub
***************************
Private Sub Command1_Click()'保存按钮按下事件
Dim sqlStr As String
On Error GoTo errxxx
If Len(Text1(0).Text) <> 5 Then
MsgBox "分店代码只能为5位数字"
Exit Sub
End If
rS.Update
Exit Sub
errxxx:
MsgBox Err & ":" & Err.Description
End Sub
第一个是frmload的事件,如果为空就新增一行,如果不空就直接绑定,后面是各个控件绑定到各个字段
第二个是窗体上的保存按钮按下时,保存记录,其他的记录都可以保存,只有这两个日期保存不了
我是一个新手,对VB的很多细节不是很了解,不过我知道可以用SQL写cmd.commandtext来执行sql语句更新,我尝试着写了一下,好象很麻烦,很吃力,而且很容易出错,我不想通过那样来实行,我想直接通过这个rs.updata就实现所有的更新
#6
现在其他的字段和TEXT绑定都很良好,可以实现修改,保存,更新的操做,只是这几个日期型的不行,我删掉这两个日期控件就没问题
#7
dtpicker里面有一个属性CustomFormat。你试试看在这里改成你要的格式。不知道是否可行
#8
设置customformat也不行啊,我设置成yyyy-mm-dd和yy-mm-dd都不行
#9
啊!!!!!!!!
我快疯了,这应该是一个初级的问题吧?怎么还没人帮我解答一下啊,哭死了。。。
大家做的数据库中都没有日期型的数据吗?有的话那都是如何更新的呢?
我快疯了,这应该是一个初级的问题吧?怎么还没人帮我解答一下啊,哭死了。。。
大家做的数据库中都没有日期型的数据吗?有的话那都是如何更新的呢?
#10
你设置后dtpicker如何显示呢?你要设置customformat的同时还要设置format属性呢
我做数据库从来不用datafield绑定,万一网络连接出问题了,还是错误。我都是单写一个函数添加或者更新的
我做数据库从来不用datafield绑定,万一网络连接出问题了,还是错误。我都是单写一个函数添加或者更新的
#11
楼主 应该是yyyy-MM-dd
记住大写MM
记住大写MM
#12
楼上讲的设置customformat同时设置format是不是指 dataformat?
如果是这个的话我也设置了
另外我这个是单机程序,只是做一个方便自己使用的小程序,不存在网络连接出问题的情况
还有你的单写一个函数来更新是用什么语句来更新的?是用adobd.command 的SQL语句来实现?
如果是这个的话我也设置了
另外我这个是单机程序,只是做一个方便自己使用的小程序,不存在网络连接出问题的情况
还有你的单写一个函数来更新是用什么语句来更新的?是用adobd.command 的SQL语句来实现?
#13
whu305:
我改成yyyy-MM-dd了,还是提示:-2147217888:客户事件句柄调用了一个提供程序中的非重入方法
TMD,这个错误提示到底是什么意思呢?
我改成yyyy-MM-dd了,还是提示:-2147217888:客户事件句柄调用了一个提供程序中的非重入方法
TMD,这个错误提示到底是什么意思呢?
#14
不是有个属性就叫format么,我想知道你设置后你的dtpicker怎么显示的
就用普通的sql,
sql="update...."
或者recordset
rs.addnew
rs.update
就是这样的
就用普通的sql,
sql="update...."
或者recordset
rs.addnew
rs.update
就是这样的
#15
你定义一个时间变量,然后先把dtpicker的值赋给变量再UPDATE应该就可以了
#16
唉,暂时解决了,虽然最后的方法不是我想象中的理想办法,不过能实现程序正常执行了
想象中还是dtpicker控件直接绑定到字段的好,不过最后还是没有绑定,单用update语句来写这两个日期字段的
算了,结贴了
想象中还是dtpicker控件直接绑定到字段的好,不过最后还是没有绑定,单用update语句来写这两个日期字段的
算了,结贴了
#1
使用自定义格式
yy-mm-dd
这样的自定义格式。
yy-mm-dd
这样的自定义格式。
#2
在哪里改成这种格式?dtpiker控件上?不行,照旧出现-2147217888的错误
#3
update 的时候 convert(char(10),'2006-11-11 10:25:32',120)
转化一下看看
转化一下看看
#4
楼主可以把你dtpiker赋值的sql语句写出来吗?
#5
Private Sub Form_Load()'载入窗体
rS.Open "分店", cN, adOpenKeyset, adLockOptimistic
If rS.EOF Then
rS.AddNew
rS.Fields(2).Value = Date
rS.Fields(3).Value = Date
End If
Set DTP1.DataSource = rS
Set DTP2.DataSource = rS
DTP1.DataField = rS.Fields(2).Name
DTP2.DataField = rS.Fields(3).Name
For i = 0 To 21
If i <> 2 And i <> 3 Then Set Text1(i).DataSource = rS
Next i
For i = 0 To 21
If i <> 2 And i <> 3 Then Text1(i).DataField = rS.Fields(i).Name
Next i
End Sub
***************************
Private Sub Command1_Click()'保存按钮按下事件
Dim sqlStr As String
On Error GoTo errxxx
If Len(Text1(0).Text) <> 5 Then
MsgBox "分店代码只能为5位数字"
Exit Sub
End If
rS.Update
Exit Sub
errxxx:
MsgBox Err & ":" & Err.Description
End Sub
第一个是frmload的事件,如果为空就新增一行,如果不空就直接绑定,后面是各个控件绑定到各个字段
第二个是窗体上的保存按钮按下时,保存记录,其他的记录都可以保存,只有这两个日期保存不了
我是一个新手,对VB的很多细节不是很了解,不过我知道可以用SQL写cmd.commandtext来执行sql语句更新,我尝试着写了一下,好象很麻烦,很吃力,而且很容易出错,我不想通过那样来实行,我想直接通过这个rs.updata就实现所有的更新
rS.Open "分店", cN, adOpenKeyset, adLockOptimistic
If rS.EOF Then
rS.AddNew
rS.Fields(2).Value = Date
rS.Fields(3).Value = Date
End If
Set DTP1.DataSource = rS
Set DTP2.DataSource = rS
DTP1.DataField = rS.Fields(2).Name
DTP2.DataField = rS.Fields(3).Name
For i = 0 To 21
If i <> 2 And i <> 3 Then Set Text1(i).DataSource = rS
Next i
For i = 0 To 21
If i <> 2 And i <> 3 Then Text1(i).DataField = rS.Fields(i).Name
Next i
End Sub
***************************
Private Sub Command1_Click()'保存按钮按下事件
Dim sqlStr As String
On Error GoTo errxxx
If Len(Text1(0).Text) <> 5 Then
MsgBox "分店代码只能为5位数字"
Exit Sub
End If
rS.Update
Exit Sub
errxxx:
MsgBox Err & ":" & Err.Description
End Sub
第一个是frmload的事件,如果为空就新增一行,如果不空就直接绑定,后面是各个控件绑定到各个字段
第二个是窗体上的保存按钮按下时,保存记录,其他的记录都可以保存,只有这两个日期保存不了
我是一个新手,对VB的很多细节不是很了解,不过我知道可以用SQL写cmd.commandtext来执行sql语句更新,我尝试着写了一下,好象很麻烦,很吃力,而且很容易出错,我不想通过那样来实行,我想直接通过这个rs.updata就实现所有的更新
#6
现在其他的字段和TEXT绑定都很良好,可以实现修改,保存,更新的操做,只是这几个日期型的不行,我删掉这两个日期控件就没问题
#7
dtpicker里面有一个属性CustomFormat。你试试看在这里改成你要的格式。不知道是否可行
#8
设置customformat也不行啊,我设置成yyyy-mm-dd和yy-mm-dd都不行
#9
啊!!!!!!!!
我快疯了,这应该是一个初级的问题吧?怎么还没人帮我解答一下啊,哭死了。。。
大家做的数据库中都没有日期型的数据吗?有的话那都是如何更新的呢?
我快疯了,这应该是一个初级的问题吧?怎么还没人帮我解答一下啊,哭死了。。。
大家做的数据库中都没有日期型的数据吗?有的话那都是如何更新的呢?
#10
你设置后dtpicker如何显示呢?你要设置customformat的同时还要设置format属性呢
我做数据库从来不用datafield绑定,万一网络连接出问题了,还是错误。我都是单写一个函数添加或者更新的
我做数据库从来不用datafield绑定,万一网络连接出问题了,还是错误。我都是单写一个函数添加或者更新的
#11
楼主 应该是yyyy-MM-dd
记住大写MM
记住大写MM
#12
楼上讲的设置customformat同时设置format是不是指 dataformat?
如果是这个的话我也设置了
另外我这个是单机程序,只是做一个方便自己使用的小程序,不存在网络连接出问题的情况
还有你的单写一个函数来更新是用什么语句来更新的?是用adobd.command 的SQL语句来实现?
如果是这个的话我也设置了
另外我这个是单机程序,只是做一个方便自己使用的小程序,不存在网络连接出问题的情况
还有你的单写一个函数来更新是用什么语句来更新的?是用adobd.command 的SQL语句来实现?
#13
whu305:
我改成yyyy-MM-dd了,还是提示:-2147217888:客户事件句柄调用了一个提供程序中的非重入方法
TMD,这个错误提示到底是什么意思呢?
我改成yyyy-MM-dd了,还是提示:-2147217888:客户事件句柄调用了一个提供程序中的非重入方法
TMD,这个错误提示到底是什么意思呢?
#14
不是有个属性就叫format么,我想知道你设置后你的dtpicker怎么显示的
就用普通的sql,
sql="update...."
或者recordset
rs.addnew
rs.update
就是这样的
就用普通的sql,
sql="update...."
或者recordset
rs.addnew
rs.update
就是这样的
#15
你定义一个时间变量,然后先把dtpicker的值赋给变量再UPDATE应该就可以了
#16
唉,暂时解决了,虽然最后的方法不是我想象中的理想办法,不过能实现程序正常执行了
想象中还是dtpicker控件直接绑定到字段的好,不过最后还是没有绑定,单用update语句来写这两个日期字段的
算了,结贴了
想象中还是dtpicker控件直接绑定到字段的好,不过最后还是没有绑定,单用update语句来写这两个日期字段的
算了,结贴了