当前位置:编程学习 > VB >>

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 ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,