アクセス2000でボタンのコードビルダ

このQ&Aのポイント
  • アクセス2000でのボタンのコードビルダについての質問です。条件を満たした者だけを表示するために、「役職」、「所属」、「採用日」の3つを条件としてデータの抽出を行いたいのですが、コードビルダの使い方が分かりません。詳しい方、教えてください。
  • 質問者は、アクセス2000でのボタンのコードビルダについての質問をしています。条件を満たす者を表示するために、「役職」、「所属」、「採用日」の3つを条件にデータの抽出を行いたいとのことですが、コードの書き方が分からず困っています。詳しい方、教えてください。
  • アクセス2000でのボタンのコードビルダについて質問があります。条件を満たしたデータのみを表示するために、「役職」、「所属」、「採用日」の3つを使いたいのですが、コードビルダの使い方が分かりません。詳しい方、お願いします。
回答を見る
  • ベストアンサー

アクセス2000でのボタンのコードビルダ

アクセス2000で、採用者のデータを管理しようと思っています。 フォームにボタンを作って、ボタンをクリックしたら条件を満たした者だけを表示する形にしたいのですが、「役職」(コード番号)と「所属」(コード番号)と「採用日」の3つを条件として、データの抽出を行いたいのですが、ボタンのコードビルダはどのようにしたら良いのでしょうか? ちなみに、ボタンの名前は「抽出採用日」でコードは下記のようになっています。 「役職」=13002「所属」=9999「採用日」=2001/04/01で検索したら、「クエリ式'[採用日[=#2001/04/01#AND[所属]='9999'#AND[役職]='13002'の日付の構文エラーです。」となります。 実際は、"&" や "#" の意味も良く分からないので、構文がどこで区切れるのかも分からない状態です。 どなたか、お教え下さい。 Private Sub 抽出採用日_Click() On Error GoTo Err_抽出採用日_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "印刷対象者フォーム" stLinkCriteria = "[採用日]=" & "#" & Format$(Me![採用予定日], "yyyy/mm/dd") & "#AND[所属]=" & "'" & Me![所属] & "'" & "#AND[役職]=" & "'" & Me![役職] & "'" 'stLinkCriteria = "[採用日]=" & "#" & Format$(Me![採用予定日], "yyyy/mm/dd") & "#AND[所属]=" & "'" & Me![所属] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_抽出採用日_Click: Exit Sub Err_抽出採用日_Click: MsgBox Err.Description Resume Exit_抽出採用日_Click End Sub

  • ariga
  • お礼率44% (55/123)

質問者が選んだベストアンサー

  • ベストアンサー
noname#2502
noname#2502
回答No.1

以下のような感じで如何でしょうか。 当方で動作確認したらオッケーでしたよ。 ' 以下ソース------------- Private Sub 抽出採用日_Click() Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim cSimei As String Dim cnt As Long Set cn = Application.CurrentProject.Connection Set rs = New ADODB.Recordset rs.CursorType = adOpenDynamic rs.ActiveConnection = cn rs.Open "テーブル", cn rs.MoveFirst cnt = 0 Do Until rs.EOF   If rs![役職] = "13002" And rs![採用日] = #4/4/2001# And rs![所属] = "9999" Then     MsgBox rs![氏名] & "だよ"     cnt = cnt + 1   End If   rs.MoveNext Loop If cnt = 0 Then   MsgBox "該当ナシ" End If rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub ' ココマデ----------------- 日付型の扱いはやっかいです。 M$の例の2001年問題もありますし。 Windowsの日付書式の設定(コンパネ→地域→日付→短い形式、のトコね) も確認してみてくださいね。

ariga
質問者

お礼

早速のお答えありがとうございました。 私の説明不足だったのですが、実は、3つの条件はテキストボックスに入力しているのですが、ご教示いただいた構文は、任意のコードや、日付にも対応できるのでしょうか? それと、現在私が記述した構文ではまったくダメなのでしょうか?(できれば、この構文をいかしたいのですが)わがままで、すいません。

その他の回答 (1)

noname#2502
noname#2502
回答No.2

下の回答の補足ですが、ソース内で字下げ(インデント) してある部分は全角スペースを使用しています (web上での見た目を損なわないため)。 ソースをコピペして使うとか言った場合には その辺適宜修正して下さいね。

関連するQ&A

  • アクセス2000で複数条件での検索

    アクセス2000で、試験結果の管理をしようと思っています。 試験によって合格点が違うので、合否結果はフラグ(1=合格、2=不合格)で管理しています。 フォームにボタンを作って、ボタンをクリックしたら合格者(あるいは不合格者) だけを表示する形にしたのですが、受験日と合否のフラグの両方を条件として、 データの抽出を行いたいのですが、ボタンのコードビルダはどのようにしたら良いのでしょうか?ちなみに、ボタンを作った時の関連付けは受験日となっているのでコードは下記のようになっています。 Private Sub 抽出採用日_Click() On Error GoTo Err_抽出採用日_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "対象者" stLinkCriteria = "[受験日]=" & "#" & Me![受験日] & "#" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_抽出採用日_Click: Exit Sub Err_抽出採用日_Click: MsgBox Err.Description Resume Exit_抽出採用日_Click End Sub

  • Access2000での複合条件検索

    前にも一回質問したんですが、どうしてもうまくいかないので、もう一回質問させていただきます。(すいません) Access2000での複合条件検索のコードビルダがうまくないようで、正しく動きません。 試験結果の集計なのですが、抽出するためのキーは「面接日」と「判定結果」です。 クエリには「面接日」と「総合判定コード」があります。 フォームには「試験日」と「判定結果」というテキストボックスがあります。 テキストボックスの「試験日」には日付、「判定結果」には1(=合格)か3(=不合格)を入れて抽出ボタンをクリックするのですが、構文エラーになります。 どこを、どう直したらいいのでしょうか? Private Sub 抽出ボタン_Click() On Error GoTo Err_抽出ボタン_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "印刷対象者フォーム" stLinkCriteria = "[面接日]=" & "#" & Format$(Me![試験日], "yyyy/mm/dd") & "#And[総合判定コード]=" & Me![判定結果] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_抽出ボタン_Click: Exit Sub Err_抽出ボタン_Click: MsgBox Err.Description Resume Exit_抽出ボタン_Click End Sub

  • サブ画面(参照のみ)を表示しつつ、メインのフォームの操作をしたい

    Private Sub cmd14検索_Click() On Error GoTo Err_cmd14検索_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "F社員データ" stLinkCriteria = "[所属名称2]=" & "'" & Me![所属名称] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_cmd14検索_Click: Exit Sub Err_cmd14検索_Click: MsgBox Err.Description Resume Exit_cmd14検索_Click End Sub という操作でメイン画面(フォーム)を開きます。 そして、これと同時に、サブ画面(参照のみ)としてもうひとつ画面を表示だけさせておきたいのですが、何かよい方法はありませんか? ちなみに、このコードは、自分が書いたものではなく、ツールボックスのコントロールウィザードで作成したものです。 なので、コードは正直書けません。 が、なんとかよい方法があれば教えてください。 宜しくお願い致します。

  • アクセスのイベント記述について。

    アクセスのあるフォームA上にある詳細ボタンをクリックすると別のフォームCが開くようにしてあるのですが、クリックすると同時にAフォームを閉じるにはどのように記述したらよいでしょうか? 詳細ボタンの記述は下記のとおりです。よろしくお願いいたします。 Private Sub 詳細_Click() On Error GoTo Err_詳細_Click Dim stDocName As String Dim stLinkCriteria As String DoCmd.Close stDocName = ChrW(12513) & ChrW(12531) & ChrW(12486) & ChrW(12490) & ChrW(12531) & ChrW(12473) stLinkCriteria = "[管理番号]=" & Me![管理番号] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_詳細_Click: Exit Sub Err_詳細_Click: MsgBox Err.Description Resume Exit_詳細_Click End Sub

  • Access2002:コマンドボタンがうまく設定できません

    使い始めてから2週間目の初心者です。よろしくお願いします。 コマンドボタンウィザードでフォーム上にコマンドボタンを作成したのですが、クリックしても反応しません。 初めは問題なく作成できたのですが、突如としてうまく動作するボタンが作成できなくなってしまいました。 ウィザードで作成した「レコードの検索」ボタンですら無反応です。 あるフォームのイベントプロージャ(?)は以下のようになっています。 (★はコメントです) Option Compare Database Private Sub テスト15:09_Click() End Sub Private Sub 部番一覧→部番詳細フォーム_Click()★←正しく動作しているボタン★ On Error GoTo Err_部番一覧→部番詳細フォーム_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "部番詳細表示" stLinkCriteria = "[部番]=" & "'" & Me![部番] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_部番一覧→部番詳細フォーム_Click: Exit Sub Err_部番一覧→部番詳細フォーム_Click: MsgBox Err.Description Resume Exit_部番一覧→部番詳細フォーム_Click End Sub←★この下に区切り線が表示されません★ Private Sub テスト15:09_Click()★←無反応のボタン。文字色赤になっています★ On Error GoTo Err_テスト15:09_Click Screen.PreviousControl.SetFocus DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70 Exit_テスト15:09_Click: Exit Sub Err_テスト15:09_Click: MsgBox Err.Description Resume Exit_テスト15:09_Click End Sub 単純ミスだと思うのですが、原因がわかりません。 どなたかわかりやすく教えいただけないでしょうか。ちなみにVBの知識は皆無です。よろしくお願いします。

  • XPアップロード後のアクセスの不具合

    「新規フォームを開く」フォームボタンがXPのアップロード後「コンパイルエラー」と表示されるようになりました。 詳細は下記の通りで、1行目が全て黄色くなっていました。もしおわかりでしたら、お助けください。 よろしくお願いします。 ----------------------------------------------- Private Sub 商品コードスキャンを開く_Click() On Error GoTo Err_商品コードスキャンを開く_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(21830) & ChrW(21697) & ChrW(12467) & ChrW(12540) & ChrW(12489) & ChrW(12473) & ChrW(12461) & ChrW(12515) & ChrW(12531) DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_商品コードスキャンを開く_Click: Exit Sub Err_商品コードスキャンを開く_Click: MsgBox Err.Description Resume Exit_商品コードスキャンを開く_Click End Sub ----------------------------------------------

  • Access VBAでのフィルタ処理

    アクセス2003を使用しています。 今VBAを使用して、フォームのテキストボックスに記入された文字列を検索条件に、 クエリからデータ抽出したいのですが、 うまくいきません。 解決したい事は、 「abc*」といったように、前方が一致している文字列データを すべて抽出するといった処理です。 今は下記のようなプログラムを組んでいます。 Private Sub コマンド1_Click() On Error GoTo Err_コマンド1_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "クエリ1" DoCmd.OpenQuery stDocName, acNormal, acEdit If IsNull(テキストボックス) Then Else stLinkCriteria = "[クエリデータ]=" & "'" & Me![テキストボックス] & "'" End If DoCmd.ApplyFilter stDocName, stLinkCriteria Exit_コマンド1_Click: Exit Sub Err_コマンド1_Click: MsgBox Err.Description Resume Exit_コマンド1_Click End Sub これだと完全に一致しなければ抽出してくれません。 どの様に変更すればよいでしょうか? よろしくお願いします。

  • Accessでの VBのコーディングを教えて下さい。

    今回、初めてAccessで「顧客管理」を作成しています。 1対多のテーブルで、フォームを作成して、 サブフォームに表示されている多側のテーブルのレコードを、1レコードづつフォームで開きたいのですが、 今のコーディング(下記に表示)では、 既存のレコードしか開けません。 これに、新規のフォームを開いてレコードの追加も行いたいので、良かったらどなたかコーディングを教えて頂けませんでしょうか?宜しくお願いします。 Private Sub 売上メインボタン_Click() On Error GoTo Err_売上メインボタン_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "売上登録メインフォーム" stLinkCriteria = "[売上キー]=" & Me![売上キー] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_売上メインボタン_Click: Exit Sub Err_売上メインボタン_Click: MsgBox Err.Description Resume Exit_売上メインボタン_Click End Sub

  • アクセスのイベント記述について追加質問です。(その2)。

    大変恐縮なのですが、先ほど締め切ったばかりの質問に追加質問です。あるフォーム(患者IDで検索した結果を表示した表形式のフォーム)でコマンド30をクリックしたら、別の入力画面が開くように設定して、患者IDと依頼日が一致したフォームが開くようにはなったのですが、これプラス、検体名も一致したフォームが開くようにしたいです。以下の記述に変更を加えるとしたら、どのようにしたらよいのでしょうか?何度もすみませんが、よろしくお願いいたします。 Private Sub コマンド30_Click() On Error GoTo Err_コマンド30_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(81) & ChrW(58) & ChrW(26908) & ChrW(20307) & ChrW(21029) & ChrW(20837) & ChrW(21147) & ChrW(-238) stLinkCriteria = "[患者ID]=" & Me![患者ID] stLinkCriteria = stLinkCriteria & " AND [依頼日]=#" & Me![依頼日] & "#" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_コマンド30_Click: Exit Sub Err_コマンド30_Click: MsgBox Err.Description Resume Exit_コマンド30_Click End Sub

  • XPのアップロードとアクセスの相性?

    アクセス2000ですが、どうもつい最近のXPの アップロードとの相性が悪いようです。 ある特定のフォームを開こうとすると、 「コンパイルエラー」という表示が出てきます。 下記のビジュアルベーシックの部分がおかしいようですが、わかる方アドバイスをお願いします。 特にstDocName = ChrW(12487) あたりが怪しそうです。 ------------------------------------------------------- Private Sub 実行ボタン_Click() On Error GoTo Err_実行ボタン_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(12487) & ChrW(12540) & ChrW(12479) & ChrW(20837) & ChrW(21147) DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_実行ボタン_Click: Exit Sub Err_実行ボタン_Click: MsgBox Err.Description Resume Exit_実行ボタン_Click End Sub ----------------------------------------------------------- ちなみに、システムの復元で数日戻すとこの現象は起こらなくなりますが、数日ごとに元の戻す、というのも根本的ではないので・・・

専門家に質問してみよう