プロが教える店舗&オフィスのセキュリティ対策術

アクセス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

A 回答 (2件)

以下のような感じで如何でしょうか。


当方で動作確認したらオッケーでしたよ。

' 以下ソース-------------

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の日付書式の設定(コンパネ→地域→日付→短い形式、のトコね)
も確認してみてくださいね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/07/31 22:40

下の回答の補足ですが、ソース内で字下げ(インデント)


してある部分は全角スペースを使用しています
(web上での見た目を損なわないため)。
ソースをコピペして使うとか言った場合には
その辺適宜修正して下さいね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!