|
给你一个查询函数。数据库存放位置你自己写。
Function mdbSource() As Variant
Dim cn As New ADODB.Connection, sql$, cntxt, cnRec As New ADODB.Recordset
cntxt = "Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=C:\temp\出入库系统\出入库系统.mdb;"
cn.Open cntxt
sql = "select 编码,物品名称,规格型号,单位 from 成品资料"
cnRec.Open sql, cn
mdbSource = cnRec.GetRows
cnRec.Close
cn.Close
End Functon
在事件中,修改公用数组的获取方式(下面代码的最后二行)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim I As Integer, recArr As New ADODB.Recordset
If Target.Count = 1 Then
If Target.Column = 3 And Target.Row > 5 Then
With Sheets("基础信息表")
Myr = .[B65536].End(xlUp).Row
Arrsj = mdbSource()
Arrsj=Application.Transpose(Arrsj)
由于Arrsj返回的数组与你原来区域值数组的行列倒置,因此要转置,饶是如此,由于这个数组的下标是从0开始的,仍与你原来的有区别,你再调试吧 |
|