初級問題,高分求解


這應該是一個初級的問題:
表有二十幾個字段,其中一個是日期字段,在窗體分別用text,dtpiker等控件通過DATASOURCD和DATAFIELD綁定到所有字段,通過RS.UPDATA來更新修改,但是總是無法更新成功,提示:-2147217888:客戶事件句柄調用了一個提供程序中的非重入方法.經多次測試,發現是日期格式的這個字段的問題,dtpiker的值無法更新到access中的日期字段中。
我已經在ACCESS中將這個字段設成短日期格式,在控件格式上也設置為短日期格式,怎么,但是還是老樣子,請問我要怎么寫才能通過?
難道非要寫CMD.COMMANDTEXT=一大堆的&&&?我可是有二十幾個字段,還有其他的一些表都是十幾二十個字段,每次都寫sql的&&&?
**************************************************
能不能麻煩大家多打幾個字啊?哭ing,在數據庫版發了一周,只有一個回復,還只有幾個字:“設置有問題”,說句不好聽的,這不是廢話嗎?這叫啥回答啊?

16 个解决方案

#1


使用自定義格式
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就實現所有的更新

#6


現在其他的字段和TEXT綁定都很良好,可以實現修改,保存,更新的操做,只是這幾個日期型的不行,我刪掉這兩個日期控件就沒問題

#7


dtpicker里面有一個屬性CustomFormat。你試試看在這里改成你要的格式。不知道是否可行

#8


設置customformat也不行啊,我設置成yyyy-mm-dd和yy-mm-dd都不行

#9


啊!!!!!!!!
我快瘋了,這應該是一個初級的問題吧?怎么還沒人幫我解答一下啊,哭死了。。。
大家做的數據庫中都沒有日期型的數據嗎?有的話那都是如何更新的呢?

#10


你設置后dtpicker如何顯示呢?你要設置customformat的同時還要設置format屬性呢

我做數據庫從來不用datafield綁定,萬一網絡連接出問題了,還是錯誤。我都是單寫一個函數添加或者更新的

#11


樓主 應該是yyyy-MM-dd
記住大寫MM

#12


樓上講的設置customformat同時設置format是不是指 dataformat?
如果是這個的話我也設置了
另外我這個是單機程序,只是做一個方便自己使用的小程序,不存在網絡連接出問題的情況
還有你的單寫一個函數來更新是用什么語句來更新的?是用adobd.command 的SQL語句來實現?

#13


whu305:
我改成yyyy-MM-dd了,還是提示:-2147217888:客戶事件句柄調用了一個提供程序中的非重入方法

TMD,這個錯誤提示到底是什么意思呢?

#14


不是有個屬性就叫format么,我想知道你設置后你的dtpicker怎么顯示的

就用普通的sql, 
sql="update...."
或者recordset
rs.addnew
rs.update

就是這樣的

#15


你定義一個時間變量,然后先把dtpicker的值賦給變量再UPDATE應該就可以了

#16


唉,暫時解決了,雖然最后的方法不是我想象中的理想辦法,不過能實現程序正常執行了

想象中還是dtpicker控件直接綁定到字段的好,不過最后還是沒有綁定,單用update語句來寫這兩個日期字段的

算了,結貼了

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com