vb多表查询access
本帖最后由 bcrun 于 2012-02-29 21:51:04 编辑 分步调试到哪一句提示 表达式类型不匹配 啊? 参阅这个 没能进得去 点击按钮想进入这个页面 就报错了 erdong988 要不我把文件发你 你帮我看看 你的Like语句使用怎么没有%之类的?LIKE 是另一個在 WHERE 子句中會用到的指令。基本上, LIKE 能讓我們依據一個模式 (pattern) 來找出我們要的資料。相對來說,在運用 IN 的時候,我們完全地知道我們需要的條件;在運用 BETWEEN 的時候,我們則是列出一個範圍。 LIKE 的語法如下:
SELECT "欄位名"
FROM "表格名"
WHERE "欄位名" LIKE {模式}
{模式} 經常包括野卡 (wildcard). 以下是幾個例子:
'A_Z': 所有以 'A' 起頭,另一個任何值的字原,且以 'Z' 為結尾的字串。 'ABZ' 和 'A2Z' 都符合這一個模式,而 'AKKZ' 並不符合 (因為在 A 和 Z 之間有兩個字原,而不是一個字原)。
'ABC%': 所有以 'ABC' 起頭的字串。舉例來說,'ABCD' 和 'ABCABC' 都符合這個模式。
'%XYZ': 所有以 'XYZ' 結尾的字串。舉例來說,'WXYZ' 和 'ZZXYZ' 都符合這個模式。
'%AN%': 所有含有 'AN'這個模式的字串。舉例來說, 'LOS ANGELES' 和 'SAN FRANCISCO' 都符合這個模式。
我們將以上最後一個例子用在我們的 Store_Information 表格上:
Store_Information 表格
store_name Sales Date
LOS ANGELES $1500 Jan-05-1999
SAN DIEGO $250 Jan-07-1999
SAN FRANCISCO $300 Jan-08-1999
BOSTON $700 Jan-08-1999
我們就鍵入,
SELECT *
FROM Store_Information
WHERE store_name LIKE '%AN%'
結果:
store_name Sales Date
LOS ANGELES $1500 Jan-05-1999
SAN FRANCISCO $300 Jan-08-1999
SAN DIEGO $250 Jan-07-1999
在VB中按F8单步跟踪。
如5楼所说,查询SQL语句中应该有通配符
查了一下 ACCESS中,%对应的是*
还有 SQL语句中该有空格的地方不能没有
http://apps.hi.baidu.com/share/detail/10348306 VB中即使是ACCESS数据库仍然是 %
但楼主的问题,建议还是先单步调试,指出错误的语句然后以便大家分析。 1,like后加空格:
Adodc1.RecordSource = "select b.读者编号,b.读者姓名,c.书籍名称 from b,c where b.读者编号=c.读者编号 and b.读者编号 like '" & Trim(Text2.Text) & "'"
2,出生日期在数据库中什么数据类型?
3,text3控件中输入了什么值?
Adodc1.RecordSource = "select b.读者编号,b.读者姓名,c.书籍名称 from b,c where b.读者编号=c.读者编号 and b.year(出生日期)=" & Trim(Text3.Text) & ""
检查出生日期的数据类型(应该不会是数值类型):
日期类型:
b.year(出生日期)=#" & Trim(Text3.Text) & "#" & ""
文本类型:
b.year(出生日期)='" & Trim(Text3.Text) & "'" & ""
补充:VB , 基础类