一个会员系统,查询出一个会员的信息并显示到窗体上后,会员入会日期用一个textbox来显示,Text1(13).Text = query_rs!member_rhrq
query_rs!member_rhrq在数据表中定义为日期类型(access数据库),在text1(13)中日期显示为:04-5-9(但是在XP下运行显示为:2004-5-9,实际在数据库中也是2004-5-9这种格式,不知为何在98下就成了这种格式),如果想将其修改为02-8-20,输入02-8-20,点修改后重新查询,却变为了:20-2-8,但在XP下却一切正常,不知哪里出了问题?用的修改语句为:
"update member set member_ttdj='" & Trim(Combo1(1).Text) & "',member_rhrq=#" & CDate(Trim(Text1(13).Text)) & "#,member_hf='" & Trim(Text1(1).Text) where member_id='" & edit_member_id & "'"语句应该没错吧?谢谢.
你的区域设置 = 中文(中国)
短日期格式 = "yyyy-MM-dd"
根本的解决方法是,
在构建查询字符串时,先把日期用 Format 函数格式化一下。
如:
Format(你的日期变量, "yyyy-mm-dd") & " " & Format(你的时间变量, "HH:mm:ss")
wuljia(武力电子) ,只是查询时格式化吗?写入记录时需不需设置?
Format(日期变量,"yyyy-mm-dd HH:mm:ss")
Private Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Boolean
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
Sub setdateformat()
Dim dwLCID As Long, i As Long
Dim lpLCData As String * 255, cchData
cchData = Len(lpLCData)
dwLCID = GetSystemDefaultLCID()
i = SetLocaleInfo(dwLCID, LOCALE_SSHORTDATE, "yyyy-MM-dd") '设置短日期的格式
PostMessage HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0
i = SetLocaleInfo(dwLCID, 32, "yyyy'年'M'月'd'日'") '设置长日期的格式
PostMessage HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0
End Sub
这一句,就是改短日期格式,你可以试下"yyyy-MM-dd"改不同格式,执行这一段代码,然后打开控制面板看看
1.用 DTPicker 控件进行日期输入
2.用 RecordSet 的 AddNew 进行数据更新,就不存在 SQL 中日期格式解析错误的问题。
好相不行,把短日期改为:i = SetLocaleInfo(dwLCID, LOCALE_SSHORTDATE, "yy-MM-dd")
执行后控制面板里还是YYYY-M-D
用DTPICKER原来也想过,但窗体上有五六个地方需要输入日期,太麻烦了.
你的区域设置 = 中文(中国)
短日期格式 = winxp 的日期格式
setdateformat()是一个Sub
要调用才行的
call setdateformat()
我这里没有win98~
>Tiger_Zhao(VB老鸟)
>用DTPICKER原来也想过,但窗体上有五六个地方需要输入日期,太麻烦了.