Dictionary 在Access VBA中使用InStr从另一个表中查找字符串值

Dictionary 在Access VBA中使用InStr从另一个表中查找字符串值,dictionary,ms-access,instr,Dictionary,Ms Access,Instr,非常新的访问VBA,并希望在这方面提供一些指导 我正在搜索字符串,并在该字段中查找特定的子字符串。此子字符串将具有基于另一个表的值,即 订单=“参考订单QQ131415” 问题是,订单号没有特定的模式。有些是7位数,有些是10位数,有些上面有破折号 我也可以访问一个表,其中包含这些订单号,我想我正试图将该表用作字典 我最基本的访问VBA代码如下 'order=Instr(1,rst![order],qst![order_id],vbBinaryCompare)' order是我试图提取的订单id

非常新的访问VBA,并希望在这方面提供一些指导

我正在搜索字符串,并在该字段中查找特定的子字符串。此子字符串将具有基于另一个表的值,即

订单=“参考订单QQ131415”

问题是,订单号没有特定的模式。有些是7位数,有些是10位数,有些上面有破折号

我也可以访问一个表,其中包含这些订单号,我想我正试图将该表用作字典

我最基本的访问VBA代码如下

'order=Instr(1,rst![order],qst![order_id],vbBinaryCompare)'

order是我试图提取的订单id所在的字符串 order_id是单独表格中的实际id


这是Access VBA可以处理的吗?

所以我认为这会有所帮助

您的代码中的“order=”后面的句子不太清楚。你能澄清一下吗

仪表(第1列、第2列[比较])

string1是必需的。正在搜索的字符串表达式。 string2是必需的。寻找字符串表达式

Instr返回一个变量(本例中为数字),指定一个字符串在另一个字符串中第一次出现的位置。因此,它应该是: 位置=仪表(1、1、2、1)

现在您知道ordernumber从顺序的x位置开始。然后必须执行left(Order,Len(Order)-x)来提取字符串

您可以在嵌套循环中这样做,因为您必须按顺序遍历每个记录的字典

例如

有这种影响的东西

Dim rsOrder as DAO.recordset
Dim rsOrderId as Dao.recordset
dim orderTest as integer
dim stringcapture as string

Set rsOrder = Currentdb.OpenRecordset("[SELECT STRING]")
rsOrder.Movefirst

Do until rsOrder.EOF or rsOrder.BOF
    Order = rsOrder![OrderFieldName]
    Set rsOrderId = Currentdb.OpenRecordSet("[SELECT STRING]")
    rsOrderID.Movefirst
    Do Until rsOrderID.EOF or rsOrderID.BOF
        OrderID = rsOrderID![OrderIDFieldName]
        orderTest = Instr(1, Order, OrderID,1)
        StringCapture = left(Order, Len(order) -OrderTest)
    rsOrderID.movenext
    Loop
rsOrder.movenext
Loop
rsOrder.close
rsOrderID.close