VB中查询语句如何使用
请问一下高手,我在VB中使用查询功能,有一个sql表中有姓名和电话号码,我写的语句为PrivateSubfind_Click()strsql=""IfTrim(name_...
请问一下高手,我在VB中使用查询功能,有一个sql表中有姓名和电话号码,我写的语句为
Private Sub find_Click()
strsql = ""
If Trim(name_find.Text) <> "" Then
If strsql = "" Then
strsql = "姓名='" & Trim(name_find.Text) & "'"
Else
strsql = strsql + " and 姓名='" & Trim(name_find.Text) & "'"
End If
End If
If Trim(phone_find.Text) <> "" Then
If strsql = "" Then
strsql = "电话号码='" &Trim(homephone_find.Text) & "'"
Else
strsql = strsql = " and 电话号码='" & Trim(phone_find.Text) & "'"
End If
End If
If strsql = "" Then
Adodc1.RecordSource = "select * from phone"
Adodc1.Refresh
Else
Adodc1.RecordSource = "select * from phone where " + strsql
Adodc1.Refresh
End If
End Sub
以上语句如果我同时输入姓名和电话号码进行查询的时候会出现类型不匹配,请问一下是否需要使用一个什么样的函数转换一下类型?具体该怎么修改?非常感谢!
我现在调试了一下发现,如果只输入其中一个条件,另一个条件为空,可以正常运行,但是同时输入两个查询条件的话就会出现“类型不匹配”,我试了好多个字段都是这种情况,只输一个可以,但同时输入多个条件就不行,请问该如何解决,谢谢! 展开
Private Sub find_Click()
strsql = ""
If Trim(name_find.Text) <> "" Then
If strsql = "" Then
strsql = "姓名='" & Trim(name_find.Text) & "'"
Else
strsql = strsql + " and 姓名='" & Trim(name_find.Text) & "'"
End If
End If
If Trim(phone_find.Text) <> "" Then
If strsql = "" Then
strsql = "电话号码='" &Trim(homephone_find.Text) & "'"
Else
strsql = strsql = " and 电话号码='" & Trim(phone_find.Text) & "'"
End If
End If
If strsql = "" Then
Adodc1.RecordSource = "select * from phone"
Adodc1.Refresh
Else
Adodc1.RecordSource = "select * from phone where " + strsql
Adodc1.Refresh
End If
End Sub
以上语句如果我同时输入姓名和电话号码进行查询的时候会出现类型不匹配,请问一下是否需要使用一个什么样的函数转换一下类型?具体该怎么修改?非常感谢!
我现在调试了一下发现,如果只输入其中一个条件,另一个条件为空,可以正常运行,但是同时输入两个查询条件的话就会出现“类型不匹配”,我试了好多个字段都是这种情况,只输一个可以,但同时输入多个条件就不行,请问该如何解决,谢谢! 展开
4个回答
推荐于2017-10-07 · 知道合伙人软件行家
关注
展开全部
一)操纵数据库,VB必须正确使用SQL结构化查询语句,将其赋值给ADO数据控件的RecordSource属性。
二)拼接SQL结构化查询语句的条件部分的判断语句结构应该是简洁有效。
已将原按钮的Click事件代码修改为能有效给ADO数据控件RecordSource属性,去完成数据查询。
SQL结构化查询语句
结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
Option Explicit
Dim strsql As String
Private Sub find_Click()
If Trim(name_find.Text) <> "" And Trim(phone_find.Text) <> "" Then
strsql = "select * from phone where " + "电话号码='" & Trim(phone_find.Text) & "'" + " and 姓名='" & Trim(name_find.Text) & "'"
End If
Adodc1.RecordSource = strsql
Debug.Print Adodc1.RecordSource
End Sub
立即窗口显示正确的SQL语句。
展开全部
Private Sub find_Click()
strsql = ""
If Trim(name_find.Text) <> "" Then
strsql = strsql + " and 姓名='" & Trim(name_find.Text) & "'"
End If
If Trim(phone_find.Text) <> "" Then
strsql = strsql = " and 电话号码='" & Trim(phone_find.Text) & "'"
End If
If strsql = "" Then
Adodc1.RecordSource = "select * from phone"
Adodc1.Refresh
Else
Adodc1.RecordSource = "select * from phone where 1=1 " + strsql
Adodc1.Refresh
End If
End Sub
strsql = ""
If Trim(name_find.Text) <> "" Then
strsql = strsql + " and 姓名='" & Trim(name_find.Text) & "'"
End If
If Trim(phone_find.Text) <> "" Then
strsql = strsql = " and 电话号码='" & Trim(phone_find.Text) & "'"
End If
If strsql = "" Then
Adodc1.RecordSource = "select * from phone"
Adodc1.Refresh
Else
Adodc1.RecordSource = "select * from phone where 1=1 " + strsql
Adodc1.Refresh
End If
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
strsql = strsql = " and 电话号码='" & Trim(phone_find.Text) & "'"
这句有问题
这句有问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询