请问如何查找多个符合条件的值

Chris52346 2019-04-01 04:07:31
内码 简拼 品名 成份名 药品类别 规格 配伍禁忌
47019 RS 人参 人参 人参 支 ,藜芦,
1111 LL 藜芦 藜芦 藜芦 g ,人参,党参,玄参,西洋参,细辛,
33212 XX 细辛 细辛 细辛 g ,藜芦,
2222 RS 蚺蛇 蚺蛇 蚺蛇 g ,全蝎,



第二行和第四行的简拼都是RS,请问TexT1输入RS后,如何把人参和蚺蛇分别返回到Form2的Text1和Text2里

谢谢
...全文
735 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Chris52346 2019-04-04
  • 打赏
  • 举报
回复
引用 16 楼 智者知已应修善业 的回复:
筛选数据表,在读数据库关闭后去执行,读数据库是读操作,筛选是读完后操作,要分得很清楚.


太感谢了。



现在问题是改的语句可能有问题,需要调整
  • 打赏
  • 举报
回复
筛选数据表,在读数据库关闭后去执行,读数据库是读操作,筛选是读完后操作,要分得很清楚.
Chris52346 2019-04-04
  • 打赏
  • 举报
回复
引用 14 楼 智者知已应修善业 的回复:
你不按我说的提供,没办法帮你看问题出哪了.


非常感谢,是我基础太差了。

Private Sub Command11_Click()
If Text2 <> "" Then
Dim Conn, Reco
Dim sql As String
Set Conn = CreateObject("ADODB.Connection")
Set Reco = CreateObject("ADODB.Recordset")
Connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\ÀîÌÎ\Âý²¡Ó¦ÓÃ\µç×ÓÉó·½\ÎÞÃÜÂë.accdb;
Conn.Open Connection

DataGrid1.DataSource = Connection
dim sx = 简拼 Like '%" & Trim(Text8.Text) & "%'"
DataView DataGrid2 = Connection.DefaultView
DataGrid2.RowFilter = sx
Reco.Close
Conn.Close
Else
End If
SendKeys "{TAB}"
End Sub
  • 打赏
  • 举报
回复
你不按我说的提供,没办法帮你看问题出哪了.
  • 打赏
  • 举报
回复
不知道你是怎么想的,和读数据库无关,读数据库就是把数据库度到数据表,然后就可以操作数据表了; 我的测试用例没你那数据库,就用你的字符串建立一个数据表,懂了?
Chris52346 2019-04-04
  • 打赏
  • 举报
回复
引用 11 楼 智者知已应修善业 的回复:
这是测试用的例子,你看例子然后自己去修改

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

Dim 列表 As New DataGrid
列表.Parent = Me
列表.Size = New Size(600, 200)
Dim 数据表 = 字符串转数据表()
Dim 筛选 = "简拼 Like '%" + "RS" + "%' "
列表.DataSource = 数据表
Dim 筛选表 = 数据表.DefaultView
筛选表.RowFilter = 筛选
End Sub
Function 字符串转数据表() As DataTable
Dim aa = New DataTable
For Each ss In "内码 简拼 品名 成份名 药品类别 规格 配伍禁忌".Split(" ")
aa.Columns.Add(ss)
Next ss
For Each ss In "47019 RS 人参 人参 人参 支 藜芦;1111 LL 藜芦 藜芦 藜芦 g 人参,党参,玄参,西洋参,细辛;33212 XX 细辛 细辛 细辛 g 藜芦;2222 RS 蚺蛇 蚺蛇 蚺蛇 g 全蝎".Split(";")
aa.Rows.Add(ss.Split(" "))
Next ss
Return aa
End Function



感谢大神,不读数据库的话,是不是用列表直接引入数据表的数据,然后进行筛选?
  • 打赏
  • 举报
回复
这是测试用的例子,你看例子然后自己去修改

 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Dim 列表 As New DataGrid
        列表.Parent = Me
        列表.Size = New Size(600, 200)
        Dim 数据表 = 字符串转数据表()
        Dim 筛选 = "简拼 Like '%" + "RS" + "%' "
        列表.DataSource = 数据表
        Dim 筛选表 = 数据表.DefaultView
        筛选表.RowFilter = 筛选
    End Sub
    Function 字符串转数据表() As DataTable
        Dim aa = New DataTable
        For Each ss In "内码 简拼 品名 成份名 药品类别 规格 配伍禁忌".Split(" ")
            aa.Columns.Add(ss)
        Next ss
        For Each ss In "47019 RS 人参 人参 人参 支 藜芦;1111 LL 藜芦 藜芦 藜芦 g 人参,党参,玄参,西洋参,细辛;33212 XX 细辛 细辛 细辛 g 藜芦;2222 RS 蚺蛇 蚺蛇 蚺蛇 g 全蝎".Split(";")
            aa.Rows.Add(ss.Split(" "))
        Next ss
        Return aa
    End Function

  • 打赏
  • 举报
回复
把读取出来的数据表截图来看 另外筛选的语句不是SQL的语句,两者是有区别的,操作数据表按我写的语句筛选,不是读数据库的语句,把你筛选的语句发出来看.
Chris52346 2019-04-04
  • 打赏
  • 举报
回复
引用 8 楼 智者知已应修善业 的回复:
Reco.rowfilter = sql?
不是这样的,应该重新拼筛选的字符


我是初学者,可以帮改一下吗?感激不尽。谢谢
Chris52346 2019-04-03
  • 打赏
  • 举报
回复
引用 4 楼 智者知已应修善业 的回复:
用VB.NET作实例


非常感谢,我去试试。遇到问题再请教您
  • 打赏
  • 举报
回复
用VB.NET作实例
  • 打赏
  • 举报
回复
VB6现在没使用,不过应该有数据表,而且也应该有表格控件. 在VB.net中,假设数据已经读到数据表了,那么,可以使用如下实现: 数据列表.DataSource = 数据表; 筛选 = "简拼 Like '%" + 输入框.text + "%' "; DataView 筛选表 =数据表.DefaultView; 筛选表.RowFilter = 筛选;
Chris52346 2019-04-03
  • 打赏
  • 举报
回复
引用 1 楼 智者知已应修善业 的回复:
用C#写的首先看是否正确




感谢,是这个意思。
我想实现的功能是查找所有简拼等于RS的行,然后弹出一个可选择的表格。
VB6有dataset吗?datagrid可否实现呢?非常感谢。
  • 打赏
  • 举报
回复
Reco.rowfilter = sql? 不是这样的,应该重新拼筛选的字符
Chris52346 2019-04-03
  • 打赏
  • 举报
回复
引用 3 楼 智者知已应修善业 的回复:
VB6现在没使用,不过应该有数据表,而且也应该有表格控件.
在VB.net中,假设数据已经读到数据表了,那么,可以使用如下实现:
数据列表.DataSource = 数据表;
筛选 = "简拼 Like '%" + 输入框.text + "%' ";
DataView 筛选表 =数据表.DefaultView;
筛选表.RowFilter = 筛选;



Private Sub Command11_Click()
If Text2 <> "" Then
Dim Conn, Reco
Dim sql As String
Set Conn = CreateObject("ADODB.Connection")
Set Reco = CreateObject("ADODB.Recordset")
Connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\ÀîÌÎ\Âý²¡Ó¦ÓÃ\µç×ÓÉó·½\ÎÞÃÜÂë.accdb;Jet OLEDB:Database Password=5131421arsenal"
Conn.Open Connection
If InStr(1, Text2.Text, "%", vbTextCompare) > 0 Then
sql = "SELECT * FROM 电子审方 where 简拼 Like '%" & Trim(Text2.Text) & "%'"
Else
sql = "SELECT * FROM 电子审方 where 简拼 = '" & Trim(Text2.Text) & " '"
End If
Reco.Open sql, Conn, adOpenKeyset, adLockOptimistic
DataGrid1.DataSource = Conn
Reco = Conn.defaultview
Reco.rowfilter = sql
If Not (Reco.EOF And Reco.BOF) Then
Label11.Caption = Reco("品名")
Label21.Caption = Reco("成份名")
Label31.Caption = Reco("药品类别")
Label41.Caption = Reco("规格")
Label51.Caption = Reco("配伍晋级")
Else
MsgBox "ÎÞ»õ!"
End If
Reco.Close
Conn.Close
Else
End If
SendKeys "{TAB}"
End Sub


改不明白了,求帮忙,谢谢
Chris52346 2019-04-03
  • 打赏
  • 举报
回复
引用 4 楼 智者知已应修善业 的回复:
用VB.NET作实例



Private Sub Command11_Click()
If Text2 <> "" Then
Dim Conn, Reco
Dim sql As String
Set Conn = CreateObject("ADODB.Connection")
Set Reco = CreateObject("ADODB.Recordset")
Connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\ÀîÌÎ\Âý²¡Ó¦ÓÃ\µç×ÓÉó·½\ÎÞÃÜÂë.accdb;Jet OLEDB:Database Password=5131421arsenal"
Conn.Open Connection
If InStr(1, Text2.Text, "%", vbTextCompare) > 0 Then
sql = "SELECT * FROM µç×ÓÉó·½ where ¼òÆ´ Like '%" & Trim(Text2.Text) & "%'"
Else
sql = "SELECT * FROM µç×ÓÉó·½ where ¼òÆ´ = '" & Trim(Text2.Text) & " '"
End If
Reco.Open sql, Conn, adOpenKeyset, adLockOptimistic
If Not (Reco.EOF And Reco.BOF) Then
Label11.Caption = Reco("Æ·Ãû")
Label21.Caption = Reco("³É·ÝÃû")
Label31.Caption = Reco("Ò©Æ·Àà±ð")
Label41.Caption = Reco("¹æ¸ñ")
Label51.Caption = Reco("ÅäÎé½û¼É")
Else
MsgBox "ÎÞ»õ!"
End If
Reco.Close
Conn.Close
Else
End If
SendKeys "{TAB}"
End Sub

改不太明白了,求帮助
  • 打赏
  • 举报
回复
用C#写的首先看是否正确

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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