询问一个VB访问ACCESS数据库问题,请高手指教

wantsleep 2003-12-14 02:10:05
ACCESS数据库中 表A 含有一个 时间类型 的 字段B.
想要实现功能:用VB做一个窗口,在窗口由用户输入开始时间与结束时间,然后查询表A中符合此条件的记录(字段B范围在开始时间与结束时间之间),并在VB界面显示.
实现过程:用ADO连接数据库(控件方式以及编程方式都试过了),用datagrid控件显示记录.设定两个DATE类型变量X,Y,将VB窗口输入的日期(字符串)用DATEvalue()函数转换为日期类型数据,然后在ADO连接时,属性里按照SQL查询, select * from A where B>X and B<Y.
出现的问题:设定SQL时候,提示错误.后来将SQL查询改为
select * from A where B > #2003-1-1# and B < #2003-6-1#,
程序能够正常运行,所以错误原因应该是在设置ADO时候,SQL查询语句中不能出现X,Y这样的变量?我想问的就是,如果解决这个问题?

另外还有一个问题,如果在一个窗体中访问另外一个窗体中文本框的值?在模块中申明全局变量就可以了吗?
...全文
40 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wantsleep 2003-12-14
  • 打赏
  • 举报
回复
问题在VB板块已经得到解决,这个问题困扰了3天,所以一下给出了100分,现在真不知道怎么分了,各位再帮我帖点关于VB中关于数据库的文摘?
明天来结帖.
wantsleep 2003-12-14
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2459/2459381.xml?temp=.3679926
sorry!是这张贴,与语言没关系,主要是sql语句阿。这张帖有很多种方法。我只用vc,vb不懂阿:)
----------------------------------
看了半天,云里雾里....

主要是这句:
CString str1=now.Format(_T("%Y-%m-%d- %H:%M:%S"));//取得当前时间
我现在的问题就是,VB中,如何使文本框中输入的字符串(是一个变量)在与数据库连接的SQL语句中合法使用,好像建立连接时候的SQL语句只能接受常量,不能接受变量??
唉,俺是新手,好像说不太明白.
wantsleep 2003-12-14
  • 打赏
  • 举报
回复
那再去看看,呵呵,谢谢:)
enemyxu 2003-12-14
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2459/2459381.xml?temp=.3679926
sorry!是这张贴,与语言没关系,主要是sql语句阿。这张帖有很多种方法。我只用vc,vb不懂阿:)
wantsleep 2003-12-14
  • 打赏
  • 举报
回复
1、无法将变量写在设计界面的某个控件的属性里面
解决方法:A、用程序来对属性赋值,
参考:http://access911.net/web2/index.asp?board=4&mode=3&recordid=74FAB41E15DC
B、将变量赋值给函数,然后在窗体中调用
-----------------------------
方法A,看了,没有明白怎样给属性赋值:(,能详细讲讲吗?
方法B,考虑中..
wantsleep 2003-12-14
  • 打赏
  • 举报
回复
我的程序好像这样编的(关于建立连接)

Private Sub Command1_Click()
Dim cn As New ADODB.Connection
Dim Cmd As New ADODB.Command
Dim rs As New ADODB.Recordset
Dim strConnect As String
Set cn = New ADODB.Connection
strConnect = "Provider=***;;DataSource=d:\db\aaa.mdb" 'provider内容忘记了,是先建了个adodc控件,然后拷贝粘贴的
cn.ConnectionString = strConnect
cn.Open
With Cmd
.ActiveConnection = cn
.CommandType = adCmdStoredProc
.CommandText = "select * from A where B>X and B<Y "
End With

With rs
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockReadOnly
.Open Cmd
End With
Set DataGrid1.DataSource = rs

End Sub
wantsleep 2003-12-14
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2537/2537722.xml?temp=.1249506
看看这篇对时间的参数查询有帮助,应该能解决问题
-------------------------
关键是那句查询函数,不过那是VC,俺,俺看不懂:(((
enemyxu 2003-12-14
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2537/2537722.xml?temp=.1249506
看看这篇对时间的参数查询有帮助,应该能解决问题
changechange 2003-12-14
  • 打赏
  • 举报
回复
1、无法将变量写在设计界面的某个控件的属性里面
解决方法:A、用程序来对属性赋值,
参考:http://access911.net/web2/index.asp?board=4&mode=3&recordid=74FAB41E15DC
B、将变量赋值给函数,然后在窗体中调用
2、不是,你必须用 formname.controlname.value这样来调用

7,712

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧