0

Microsoft Accessを使用して、スペースを含むレコードにフィルターを設定したいと思います。'""'無駄に使ってダブルエスケープしてみました。

私はそのようなテーブルを持っています:

ID    Title
1     Green
2     Blue Yacht 
3     Yellow

そして、これらのレコードを表示するだけのフォーム。フィルタを設定すると、次のようになります。

Form.Filter = "TestTable.Title LIKE '*Yellow*'"

それは魅力のように機能します。しかし、「ブルーヨット」をフィルタリングしようとすると

Form.Filter = "TestTable.Title LIKE '*Blue Yacht*'"

空の結果が得られます。ブルーだけのフィルタリングは、想定どおりに機能します。どういうわけかAccessはフィルターのスペースが好きではありません。「Blue」「BlueYacht 」などをフィルタリングするにはどうすればよいですか?

4

2 に答える 2

1

これは非常に奇妙な動作です。そのままで正常に動作するはずです。スペースの代わりにChrコードを使用してみてください。

Form.Filter = "TestTable.Title LIKE '*Blue" & Chr(32) & "Yacht*'"
于 2012-08-16T11:29:56.370 に答える
1

同じ問題の解決策を探しているときに、この古いスレッドに出くわしました。今のところ何も見つかりませんでした。これはAccessのバグなのか、それとも何なのかしら。

だから、これは私の場合です、私は以下の両方のフィルターを試しました。データセットサブフォームのフィルタリングと入力に取り組んでいました。フィルターはコンボボックスにあります:クエン酸塩、Paxgene、ナトリウムヘラピン。

Dim sTType as string ... ... 1. sTType = "[Tube Type] LIKE'"&Me.txtTubeType& "*'" 2. sTType = "[Tube Type] ='"&Me.txtTubeType& "' "... me.Filter = sTType

ヘラピンナトリウムを選択してフィルターとして適用すると、フィルターには何も表示されませんが、他の単語フィルターには問題はありません。

解決策:このコードを上に挿入しました

me.txtTubeType = iif(InStr(Trim(Me.txtTubeType)、 "Sod")> 0、 "Sodium *"、me.txtTubeType)

  ...
  ...
  sTType = "[Tube Type] LIKE '" & Me.txtTubeType & "'"
  me.Filter =  sTType

回避策はちょっと粗雑ですが、私の状況ではうまくいきました。

乾杯!

于 2017-11-20T22:47:46.070 に答える