2013-05-15 72 views
1

我有下面的代碼:置字符串和整數VB

Dim IDfiltr As Long 
IDfiltr = Forms!KONTROLA!ID_OS 
DoCmd.OpenForm "OSOBA", acNormal, "", "", , acNormal 
Forms!OSOBA.FilterOn = False 
DoCmd.ApplyFilter "", "[Forms]![OSOBA]![ID_OS] Like " & IDfiltr 

在最後一行中,我試圖將VBA變量IDfiltr代入DoCmd.ApplyFilter的表達,但它不工作。我也試過這個:

DoCmd.ApplyFilter "", "[Forms]![OSOBA]![ID_OS] Like IDfiltr" 

但它也行不通。如何將VB變量IDfiltr替換爲表達式?

+0

爲什麼它不適用於第一種解決方案?錯誤信息 ?你可以做一個'Msgbox IDfiltr'並告訴結果嗎? –

+0

不是錯誤消息,而是空格式。 Msgbox正確地告訴IDfiltr值。問題是如何在命令中使用變量? – user2387413

+0

對我來說,第一個連接應該工作:/如果打印它進行調試,它是正確的命令? –

回答

1

LIKE命令適用於字符串。您還需要對其進行編碼,以便告訴LIKE命令要匹配哪部分字符串。例如起見,假設你想在龍變量相匹配的字符串的開頭:

DoCmd.ApplyFilter "", "[Forms]![OSOBA]![ID_OS] Like '" & CStr(IDfiltr) & "*'" 

所以,如果場[ID_OS]是一個字符串,這將匹配所有記錄,其中IDfiltr是字段開頭[ID_OS ]。

雖然我的答案在技術上是正確的,但我有一種感覺,你真的打算做別的事情。 [ID_OS]可能是一個Integer或Long,你真的想要其他的結果。