在VB6中用ADO查寻数据库的问题

wangqiongyue 2000-07-25 09:23:00
我在VB6中用的是ADODC控件连接的ACCESS97数据库,现在想编写查寻数据的程序,
我想知道在VB6中使用ADO的方式如果正确的使用SQL来操作数据库。下面我有一段
代码,但是VB6老说FROM子句有错,我估计是需要先定义表名,但我不知道在VB6
中是如何做的,请告知。难道在VB6中就没有象VFP中的LOCATE这样的命令吗?我
找了很多资料都是针对DAO的方式操作数据库,但我不想用DAO。难道现在ADO还
需要DAO来辅助吗?
******************
Private Sub Command8_Click()
Dim table1 As String
Dim sql As String
a = Text5.Text
sql = "SELECT num FROM table1 where num=a"
database1.RecordSource = sql
'database1 is adodc
database1.Refresh
dbgrid1.refresh
End Sub
'这段程序运行后VB6就说"syntax error in from clause" 奇怪的是去掉DATABASE1.REFRESH这句后
此程序运行就无反应,加上这句就出错。
...全文
296 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangqiongyue 2000-07-28
  • 打赏
  • 举报
回复
这个问题已解决了,最后还是听朋友的用了DAO才搞定的。用ADO方式错误依旧,
等MICROSFOT明年出了VB7再说吧,呵呵。总之还是感谢感谢。
estone 2000-07-27
  • 打赏
  • 举报
回复
sql = "Select Num From table1 Where Num = " & a
如果table1是表名,直接引用即可,不用 &分隔的。
huntout 2000-07-27
  • 打赏
  • 举报
回复
a = Text5.Text
t = ADODC1.RecordSource
'在這兒設一斷點
sql = "Select Num From " & t & " Where Num=" & a

調試一下,確認t得到了你的表名,a得到了要查詢的Num值
wangqiongyue 2000-07-27
  • 打赏
  • 举报
回复
错误信息是SQL 的FROM字句出错
fuzhanyu 2000-07-26
  • 打赏
  • 举报
回复
加上一句:
dim a as string
wangqiongyue 2000-07-26
  • 打赏
  • 举报
回复
Dim a As Variant
Dim t As String
Dim sql As String
a = Text5.Text
t = ADODC1.RecordSource
sql = "Select Num From " & t & " Where Num=" & a
ADODC1.RecordSource = sql
ADODC1.Refresh
各位大哥我非常感谢你们的热心帮助,但是我现在该做的都做了,但VB还是出同样的错,
真是气死我了。我现在终于知道为什么VB搞数据库没有VFP快了。你们就再帮我检查一下
这个烦人的SQL吧,我一定会给你们很多分的。谢了。
zzh 2000-07-26
  • 打赏
  • 举报
回复
参考如下打开数据库代码:
Public db As New Connection
Dim db As Connection
Set db = New Connection
db.CursorLocation = adUseClient
//此处也可以用ODBC方式打开
db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=D:\study\vb\lsc1.mdb;"


Dim i As Long
Dim id As Long
Dim Begin
Begin = Time
Dim rst As New Recordset
Set rst = New Recordset
//把SQL语句写好
rst.Open "select * from 模拟量变化历史表 where id=1097", db, adOpenDynamic, adLockOptimistic
rst.MoveFirst
For i = 0 To rst.RecordCount - 1
id = rst.Fields("ID")
rst.MoveNext
ProgressBar1.Value = i
Next i
rst.Close
Set rst = Nothing
db.Close
bing71 2000-07-26
  • 打赏
  • 举报
回复
是不是你还没打开数据库?要先打开数据库后,才能用SQL语句打开表查询的。
Wingsun 2000-07-26
  • 打赏
  • 举报
回复
改成dim a as string ' Variant
Text5.text的内容是什么?
huntout 2000-07-26
  • 打赏
  • 举报
回复
把錯誤信息貼出來,ok?
lczddd 2000-07-25
  • 打赏
  • 举报
回复
你的表名错了,要用acess数据库中的那个表名,首先要建立连接
dim cn as rdo.rdoconnection
cn......
dim rs
set rs=cn.open sql 'sql=select * from 表名
不能随便的定义的table1
zcom 2000-07-25
  • 打赏
  • 举报
回复
我太同意TYRO 的观点了!
table1="表1"
sql="Select num from " & table1 & " where num=0"
...

___ 我是 ZCOM .
Wingsun 2000-07-25
  • 打赏
  • 举报
回复
Table1变量没有赋值啊
程序中要传递的SQL语句是一个字符串,ADO怎么知道你的Table1=? a=?
所以需要将Table1,和a的值告诉ADO
SQL="Select Num From " & Table1 & " Where Num=" & a
Num的类型不一样写法也不一样的。
日期类型:
SQL="Select Num From " & Table1 & " Where Num=#" & Format(Cdate(a),"YYYY/MM/DD") & "#"
字符类型︰
sql = "Select Num From " & Table1 & " Where Num='" & a & "'"
数值类型︰
sql = "Select Num From " & Table1 & " Where Num=" & a
...
Tyro 2000-07-25
  • 打赏
  • 举报
回复
哦!应该是sql= "SELECT num FROM " & table1 & " where num='" & a & "'"
Tyro 2000-07-25
  • 打赏
  • 举报
回复
你定义了变量table1怎么没有赋值呀?
如果sql中的table1就是那个变量,应该写成:
sql= "SELECT num FROM " & table1 & " where num=a"
如果不执行DATABASE1.REFRESH,那条sql并没有执行,当然没有反应
huntout 2000-07-25
  • 打赏
  • 举报
回复
num字段是字符型的話︰
sql = "SELECT num FROM table1 where num='" & a & "'"
num字段是數字型的話︰
sql = "SELECT num FROM table1 where num=" & a
TopHead 2000-07-25
  • 打赏
  • 举报
回复
sql = "SELECT num FROM table1 where num=a"


这句话有错,应该写成:

sql = "SELECT num FROM table1 where num='" & a & "'"
leslielu 2000-07-25
  • 打赏
  • 举报
回复
sql = "select num from numtable where num=a"
难道你的表名就叫 table1 ?
如果那样我就不知道有什么问题了, 在 FROM 后面直接写你的数据库中的表名呀.
也许我说得什么都不是, 我还没理解你的问题.
01 , 01.txt 《 VB6.0中通过MSChart控件调用数据库 》 02 , 02.txt 《 用VB6实现动态增减控件 》 03 , 03.txt ActiveX控件的创建 04 , 04.txt ADO控件和DATA控件的冲突(不能共存)的解决方法 05 , 05.txt Combo的自动查询技术 06 , 06.txt DirectX7.0使用心得(1) 07 , 07.txt DirectX7.0使用心得(2) 08 , 08.txt DirectX7.0使用心得(3) 09 , 09.txt FSO对象模型在VB中的应用 10 , 10.txt MsComm 控件的文字传输范例 11 , 11.txt Office或IE4风格的ToolBar 12 , 12.txt Regsvr32.exe注册控件的具体用法 13 , 13.txt TextBox的自动调节 14 , 14.txt TextBox实现打印机效果 15 , 15.txt TreeView的基本操作 16 , 16.txt VB5中DBGRID控件在VB6中使用 17 , 17.txt VB6.0动态加载ActiveX控件漫谈 18 , 18.txt VB与MS-Draw开发通用作图软件 19 , 19.txt VB中APP对象及其应用 20 , 20.txt VB中list控件的功能扩充 21 , 21.txt VB中防止将重复项目添加到列表框控件中 22 , 22.txt VB中用Multimedia MCI控件开发多媒体应用 23 , 23.txt Win Api在VB中的妙用 24 , 24.txt WINDOWS SCRIPT HOST对象在VB中的使用 25 , 25.txt 安装向导生成程序组并建立多个程序项 26 , 26.txt 保存复选框选项 27 , 27.txt 不用OCX来创建自己的控件(一) 28 , 28.txt 成组更新控件属性 29 , 29.txt 创建数据驱动窗体 30 , 30.txt 得到鼠标位置 31 , 31.txt 调整 Combo 下拉部分的宽度 32 , 32.txt 动态加入控件到VB控件数组中 33 , 33.txt 对ListView中的列排序 34 , 34.txt 放一个Combo到Toolbar中 35 , 35.txt 改变 ListIndex而不发生 Click 事
VB增强搜索插件 主要功能: 普通/模式搜索字符串 正则搜索、替换字符串 搜索结果列表 搜索结果相关代码预览 替换结果相关代码预览 可取消当前搜索操作 双击定位结果代码 更新记录: v2.3.0.74 调整过滤器应用时的算法 在快捷菜单中增加"显示搜索对话框"项 调整了显示代码预览的算法 修改过滤器帮助的网页地址到Google的Wiki v2.3.0.73 修改了预览窗体无法显示的问题 修改了切换结果元素时的处理方式 v2.3.0.72 在失去连接后删除内存中的对象 使用自绘列表控件代替CheckBox?式的自绘列表,解决了列表显示的问题 去除残留的ADO控件引用 取消了结果列表的缓冲模式 调整代码存储结构 修改/调整输出脚本 修改了没有搜索的时候显示结果列表导致VB崩溃的问题 v2.2.0.71 增加HelpID 默认过滤器增加ProcType?(过程类型) 修改了列表重绘时查询结果元素的算法,提高了重绘的速度 调整了列表的颜色属性 调整结果列表中高亮元素的显示方式 为搜索结果增加缓冲区,在到达一定数量后刷新列表 修改了列表元素个数超限的问题 v2.2.0.70 增加xml的TrimLine?相关属性,默认显示的时候不再带前边的空白字符 v2.2.0.69 ListBox?从Filter的xml中获取信息,进行重绘,加快了重绘速度并且不受用户修改代码的影响 修改了重绘焦点/选中元素的算法 修改热键的菜单名称 在回调函数返回之前清除Err对象 在ListPainter?关键函数中增加错误处理/显示代码 忽略RelativeText?函数的错误(此错误可能会导致IDE不稳定) v2.2.0.68 补充修改了ListBox?超限的问题 修改了ObjectCollection?,StringCollection?的实现方式 修改了横向滚动条的计算方式 修改了ListBox?重绘后失去焦点时不显示选中项目的问题 v2.2.0.67 调整文件名和类名 增加列表重绘代码,准备将匹配子串用粗体显示 修改了在显示时提取选中字符串的功能 调整了热键设定对话框的焦点处理方式 增加了列表重绘功能,可以在列表框中用粗体显示匹配项 用另一种颜色显示@Line之前的信息 调整了横向滚动条的算法 修改了过滤器无法立即应用的问题 修改了ListBox?元素可能会超限的问题 v2.1.0.66 (Beta 2) 修改了默认过滤器会输出转义字符的问题 修改了自定义热键第一次确定后无法保存的问题 修改了搜索完毕后会自动选中忽略大小写的问题 修改了无法定位第一个搜索结果的问题 v2.0.0.64 (Beta) 调整了内部结构 增加了自定义功能热键的功能 修改过滤器内核,将ADO改为XML+XSL,提高了过滤速度.

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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