- 締切済み
アクセスを教えて下さい
アクセスを教えて下さい。 Microsoft Visual Basic に以下入力したのですがうまくいきません。 ある数字0~999999までの数字を登録数字より、数字以上、数字未満で抽出したいのですがうまくいきません。 If IsNull(Me!数字以上) Or IsNull(Me!数字未満) Then key(1) = "" Else Dim MyStr1, MyStr2 As String MyStr1 = (Me!数字以上) MyStr2 = (Me!数字未満) key(1) = "登録数字 between #" & MyStr1 & "# " _ & "and #" & MyStr2 & "#" End If 初心者で時間が経つばかりで前に進みません。 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Dxak
- ベストアンサー率34% (510/1465)
Accだよね? 「数値」ではなくて「数字」(文字列)だからでは、ない? 型が違うものを範囲取得しようとして、おかしくしてると・・・ > If IsNull(Me!数字以上) Or IsNull(Me!数字未満) Then > key(1) = "" > Else Dim MyStr1, MyStr2 As Long > MyStr1 = (Me!数字以上) > MyStr2 = (Me!数字未満) key(1) = "Val(登録数字) between " & MyStr1 & " and " & MyStr2 > End If で、大体、以上かな? この後Filterか何かに入れて、処理するのかな? まぁ、とりあえずでね 後、"#"で囲むのは、日付時刻型の場合ね、数値の場合は違うよ
質問の趣旨がよくわからないのでお聞きします。こういうことでしょうか。0から999999までの数からなるデータがあって、そのなかからある決められた数より大きい(または小さい)数だけを抽出したい。 そこでお聞きしたいのは データはどの範囲にありますか。 抽出の条件(あなたの言われる登録数字)はどのセルにありますか、またはvisual basicのプログラムの中に書き込むのですか。
お礼
すぐのご返答ありがとうございます。 visual basicのプログラムの中に書き込みます。 初心者なもので、まだわかりません、まだ解決できていないのですが また補足質問を揚げさせて頂きましたので 良ければまた教えて下さい。宜しくお願い致します。
補足
わかりにくい文章ですいません 再度説明するとmaintableに各データを登録数字として例)A 800 、B 1200、C 1500・・・をフィールドに入れています 数字以上、未満で500~1300と入力すると該当するA,Bデータを抽出したいのです。検索でクエリより、maintableから登録数字を選択しています。検索フォームでさらにsub検索にもフィールドに登録数字を入れています、それを検索フォームにて登録データの抽出を行いたいのです 。宜しくお願い致します
補足
ありがとうございます。 すぐの返信ありがとうございます。 自分なりに本を見ながらしたのですが、困っています。 1以上20000未満で入力して[登録数字]より抽出を行ったのですが 実行時エラー '2001':となり直前の操作がキャンセルされました。 デバックになり、Me!sub検索.Form.Filter = criteriaが黄色く表示されました。原因は下記の事だと思うのですが、どうすれば良いのかわかりません、教えて下さい。宜しくお願い致します。 'フィルタ実行 'DoCmd.OpenForm "f_検索結果", acFormDS 'Forms!f_検索結果.Form.Filter = criteria 'Forms!f_検索結果.Form.FilterOn = True Me!sub検索.Form.Filter = criteria Me!sub検索.Form.FilterOn = True 'DoCmd.OpenReport "r_資料", acViewPreview, , criteria 'DoCmd.MoveSize 0, 0, 14567, 2567 End Sub