excel两个表格,数据库表与专门查询该数据库信息的表。在查询表中以多 ...

发布网友 发布时间:2022-04-24 03:39

我来回答

3个回答

热心网友 时间:2022-04-11 11:39

你好,用下列函数可以实现Excel的查询功能,可以在一张工作表查询本工作表的数据,也可以是另一张工作表的数据,甚至可以是其他工作簿的数据(路径改变之后就不行了)。
在需要显示查询值的单元格中输入下列公式:
=if(iserror(vlookup(lookupvalue,findarea,column,0)),"",vlookup(lookupvalue,findarea,column,0))
解释:
lookupvalue--------需要查询的数据(目标值),也就是你要输入的姓名、性别等以用来查询值的那个单元格地址。
findarea-----------即查询的数据来源区域,可是查询目标所在的整个工作表的地址。
column------------你需要查询的目标值所在的列,从finderea的列一列开始数,第一列为对应的column为1,第二列为2……
0-----------------模糊查询,即忽略是否排序对查询的影响(不要求查询区域事先排列)。

整个函数组合的解释:
Vlookup函数一般是先输入目标值再查询,当改变目标值之后会出错,即iserror,所以上面用的函数可以解释为:如果所查寻的目标值是错误的(即查不到),那么形式为空,如果不出错(可查到,即目标值存在),那么查询并显示该目标值。

热心网友 时间:2022-04-11 12:57

以下 进销存 为数据库  查询   根据实际情况自己修改

Private Sub CommandButton1_Click11111111111()

    Dim str$, icol As Byte

    Dim rng As Range

    Dim Arr, k%

    str = "*" & [c1] & "*"

    ReDim Arr(1 To 9, 1 To 1)

    k = 0

    With Sheets("进销存")

        For Each rng In .Range("D2", .[A65536].End(3))

            If rng(1, 2) Like str Then

                k = k + 1

                ReDim Preserve Arr(1 To 9, 1 To k)

                For icol = 1 To 9

                    Arr(icol, k) = rng(1, icol)

                Next

            End If

        Next

    End With

    

    Rows("4:65536").Delete

    [D2].Resize(k, 9) = Application.Transpose(Arr)

End Sub

Sub CommandButton1_Click()

  Dim cn As New ADODB.Connection

  Dim rs As New ADODB.Recordset

  Dim SQL$, DataSource$

  Application.ScreenUpdating = False

  DataSource = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name

  cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Imex=1';Data Source=" & DataSource

  SQL = "select * from [进销存$] where 物品名称 ='" & Sheets("查询").Range("E1") & "'"

  rs.Open SQL, cn ', adOpenKeyset, adLockOptimistic

  Range("A3").CopyFromRecordset rs

  rs.Close

  cn.Close

  

  Set rs = Nothing

  Set cn = Nothing

End Sub

热心网友 时间:2022-04-11 14:31

可以用“筛选”这个功能,在菜单里,对两个列进行筛选,符合条件的就会显示出来。很简单。追问呵呵,谢谢,不过查询的过程和结果显示都是在另一个表格里,因为数据表格的所有数据最好是不能全部显示出来。相当于拐个弯儿。我了解有点儿神经,可是公司让这么整我也没辙啊。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com