お世話になります。
VBAで修正点を教えてください。(修正だらけかと思いますが…)
①F_案件、帳票。レコードごとにボタンを設置。クリックすると下記VBA
②もしT_特別案件に既に登録されている案件番号のレコードでないなら、追加クエリで追加する。
③そうでなければ該当のレコードを開く。
いまいち""や''をどこにつけたらいいのかわかっていません…
宜しくお願いします。
Private Sub btn追加_Click()
If DCount([案件番号] = [txt案件番号], "T_特別案件") = 0 Then
DoCmd.OpenQuery "Q_追加"
Else
DoCmd.OpenForm "F_特別案件", , " 案件番号 = 'Me!txt案件番号'"
End If
DCount関数は下記のような構文になります。
DCount(フィールド名, テーブル名またはクエリ名, 抽出条件)
また、それぞれの引数は文字列で指定します。
DCount 関数 - Access
案件番号フィールドが数値型なら、下記のコードになります。
案件番号フィールドがテキスト型なら、下記のコードになります。
ありがとうございます。
早速試したところ、(案件番号はテキストです)
実行時エラー 3075
クエリ式'案件番号='12345'の文字列の構文エラーです。
とでました。(12345は任意の案件番号)
わたしの指定に間違いがあるのかと思いますが、思い当たりません…
もし、どのようなミスがあるのか見当がつけば、教えていただけると助かります。
「案件番号」というのは実際のフィールド名ですか。
とりあえず下記で試してみてください。
Dcountの括弧の閉じ位置がおかしいですね
あっ、ミスってますね。ご指摘ありがとうございます。
横から申し訳ありません、
> 引用テキスト Me.txt案件番号) & "'"
閉じカッコの位置はコチラでよろしいのでしょうか。
多分、修正されたらすぐに走るかと思います。
失礼、かぶってました
ご確認ありがとうございました。
エラーは出なくなったのですが、どうもうまくいきません。
案件が1つもない状態で表示されます。
試しに、式の下の部分だけ試してみましたが、やはりうまくいきません。
フォーム上で、隣に似たようなボタンがあり、こちらは案件詳細ページに飛ぶことに成功しています。
どちらも行先のフィールド名を同じ(案件番号)にしているのが問題がありますでしょうか。
DoCmd.OpenForm "F_案件詳細", , , "案件番号='" & Me!txt案件番号 & "'", , acDialog
DoCmd.OpenForm "F_保守", , , "案件番号='" & Me!txt案件NO & "'", , acDialog
txt案件NO
↑間違いです。こちらも案件番号としています。
誤りがありごちゃついてきましたので、書き直します。
DoCmd.OpenForm "F_案件詳細", , , "案件番号='" & Me!txt案件番号 & "'", , acDialog
↑正常に動いているボタン。
DoCmd.OpenForm "F_特別案件, , , "案件番号='" & Me!txt案件番号 & "'", , acDialog
↑今回の、正常に動かないボタン。(案件が1つもひっかからない。)
F_特別案件 をしっかり"(ダブルクォーテーション)でくくってもダメでしょうか?
>7785世代
ミスをただしたつもりがまだミスがあり、申し訳ありません。(事情がありコピペできないのでミスってしまいました…)
ダブルクォーテーションでくくっておりましたがうまくいきません。
DoCmd.OpenForm "F_特別案件", , , "案件番号='" & Me!txt案件番号 & "'", , acDialog
正しく動いているものとの違いは、リンク元リンク先のフォームが同じクエリを参考しているものと、違うクエリを参考しているものになります。
大元のコントロールソースが違うということは関係ありますか?
(今、コントロールソースをあわせてみましたが、関係ないようですね…)
ごめんなさい。下の部分(単純なリンク部分)はいつの間にかうまく動いていたようです。
上の部分が、相変わらず新しいフォームが開いてしまう状況です。
もうしばらく沼にはまってみます…
申し訳ありません!!教えていただいたかっこの位置について、訂正したつもりが、
自分の勝手な解釈が入っていたようで、違う場所に移動していました。
きちんと教えていただいた場所に移動することで、結果的にうまく動くようになりました。
本当にありがとうございました。