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

このQ&Aに関連する最新のQ&A

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で質問しましょう!

このQ&Aと関連する良く見られている質問

QOutlookで[全員に返信]をクリックすると、[宛先]と[CC]をす

Outlookで[全員に返信]をクリックすると、[宛先]と[CC]をすべて[CC]に入るように設定。

今までOutlookずっと愛用していますが、現在は最新版のOutlook2010を使用してます。

[全員に返信]をクリックすると、元メールの[送信元]と[宛先]が新メールの[宛先]に変わり、[CC]はそのまま引継ぎますが、元メールの[送信元]と[宛先]と[CC]を全部[CC]に入るように設定などありますか。

または、[送信元]だけを[宛先]にして、ほかはすべて[CC]に入ってもいいですが。

Aベストアンサー

>[全員に返信]をクリックすると、元メールの[送信元]と[宛先]が新メールの[宛先]に変わり、[CC]はそのまま引継ぎます

これって、Microsoftのメールソフトの仕様ですかね。
自分が受信したメールの宛先やCCであっても、Outlook Expressもそうなるようです。

私のメインのThunderbirdでは、自分が複数の宛先やCCに含まれている場合でも、それらの受信メールから「全員に返信」で、受信メールの「送信元」のみが、返信メールの宛先に入り、他の「宛先」や「CC」はすべてCCに表示されます。

>[送信元]だけを[宛先]にして、ほかはすべて[CC]に入ってもいいですが。

この部分での方法は、返信メールの宛先欄で、送信元以外をドラッグして選択して右クリックから切り取り、CC欄に右クリックから貼り付けするしかないと思います。

Q[ctrl] + [V] で書式無しテキストとして貼り付ける

PowerPoint2002を使用しています。

テキストを [ctrl] + [C] でコピーし、[ctrl] + [V] で貼り付けるときに、書式無しテキストとして貼り付ける方法はないでしょうか?

書式なしテキストとして貼り付けるには、
「編集」→「形式を選択して貼り付け」→「書式なしテキスト」と選択しますが、これでは手間がかかります。
マクロを登録すればよいのかもしれませんが、もっとスマートにできる方法がありましたら教えてください。

Aベストアンサー

こんにちは

私はテキストエディタを別に立ち上げておき,一度そこにペーストしてから再びコピーし
て,パワーポイントにペーストしています.
コピー&ペーストを2回繰り返すことになりますが,[型式を…]をやるよりは楽かなぁ~
と思っています.書式を無くしたいときはいつもこの方法を使っています.

[型式を…]のコマンドをツールバーに入れてしまうという方法もありますが,メニューか
ら選ぶという手間が省けるという程度です.

QOutlookExpressの[eml]データを[msg]データに

メールデータについて教えて下さい。

通常OutlookExpressのメールデータを保存すると
拡張子が[eml]になりますが、
これをOutlookの[msg]に変換する方法は
ありますでしょうか?

理由は、取引先からメールデータを
[msg]で欲しいといわれたのですが、
私のメーラーはOutlookExpressのため
渡すことができません。

何か良い方法を教えて下さい。

Aベストアンサー

下記のサイトのソフトはいかがでしょうか?

参考URL:http://www.freedownloadscenter.com/Best/eml-convert.html

Qエクセル表示形式で[DBNnm1][$-FFFF]0となるのは?

アラビア数字を漢数字で表記(9105→九一〇五)するため「表示形式」、「ユーザー定義」で
[DBNnm1]0
と入力(詳しくはないのですが、このサイトで調べてそのようにしてみました)してファイルを保存しましたが、再びファイルを開いたときにそのセルの表示がアラビア数字に戻っており、表示形式が
[DBNnm1][$-FFFF]0
と変わっています。[$-FFFF]の部分は何を表しているのですか?
また、保存時のまま変わらないようにする対処法を教えてください。よろしくお願いします。

Aベストアンサー

「ユーザ定義」で”[DBNum1]G/標準”とやるだと思います。
この場合、9105->九千百五と変換されます。

9105->九一〇五と変換するには、関数を使わないと出来ないのではないでしょうか。

A1のセルに数字が入っている場合、A2のセルに以下の式を書きます。
=NUMBERSTRING(A1,3)

Q[3430514]を[昭和43年5月14日]と表示させたい

大量のデータを

3430514 > 昭和43年5月14日

という形式に変換、またはセルの書式設定で
変換したいです。

1文字目は、

1 明治
2 大正
3 昭和
4 平成

2文字目以降は年号・月・日という形式です。
なんとか手間をかけずに綺麗に整理できればと、
思うのですが、良いお知恵がありましたらお教え下さい。

Aベストアンサー

3430514がA1セルにあるとすれば

=CHOOSE(LEFT(A1,1),"明治","大正","昭和","平成")&MID(A1,2,2)&"年"&MID(A1,4,2)&"月"&RIGHT(A1,2)&"日"

これでOKなはず。

以下、式をオートフィルでコピーすれば大量のデータでも大丈夫です。


人気Q&Aランキング

おすすめ情報