●経緯:
Access2010を使って、データベースを検索して参照、変更して保存、新規作成等ができるフォームを作ろうとしています。
最終的な目的は [検索]、[保存]、[新規]等のボタンを作成し、それぞれのボタンを押したときに該当の動作をするフォームにしたいと思います。
下記のようなテーブルを一つ作成しています。
ID | 品名 | 価格 |
---|---|---|
1 | パソコン | ¥100,000 |
2 | マウス | ¥500 |
3 | キーボード | ¥1,000 |
フォームはごく単純に[フォームウィザード]の「単票形式」で作成。
フォーム内のボタンは[プロパティ]→[イベント]→クリック時の[コードビルダー]からVBAにて記載しました。
●わからないこと:
現在、AccessのVBAで下記のコマンドを組んで動作を確認していますが、検索ボタン(コマンド7_Click
)をクリックした時点で勝手に元のテーブルがフォーム内に打ち込んだ文字列に変更されてしまいます。
例えば、ID1の「パソコン」が表示された状態でフォームの「品名」に「キーボード」と打ち込むと、検索ボタンを押した時点でテーブルのID1の品名が「キーボード」になってしまいます。
理想としては、元のテーブルのデータを変更せずに、検索した結果をフォーム内に表示したいのですが、どのようにすればよいのでしょうか?
lang
1Private Sub コマンド7_Click() 2 Me.Filter = "品名 like'*" & 品名 & "*'" 3 Me.FilterOn = True 4End Sub 5 6Private Sub コマンド8_Click() 7 8End Sub
●試したこと:
下記の操作では、元のテーブルは勝手に変更されませんでした。
・「品名」内を変更して何もしない
・「品名」内を変更して「価格」等の他のボックスに入力カーソルを移す
・「品名」内を変更して[Enter]キーを押す
・サブプロシージャ内が空欄(何もしない)ボタン(コマンド8_Click
)を作成し、そのボタンをクリック
下記の操作では元テーブルのデータも変わらず、正常に検索結果がフォームに反映されました。
・新たに「テキストボックス」を一つ作成し、Filterをかける際のテキストをそのテキストボックスから参照
元テーブルのデータが変更されてしまう基準がよくわかりません。
検索文字列の入力と検索結果の表示を同じテキストボックスで併用する使い方は一般的ではないのでしょうか?

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/19 04:49 編集
2017/10/19 12:07