アクセスでテーブルの空白テーブルの空白を指定した数字に置換するボタンが作りたいです。
テーブルが見積書明細です。見積書明細に見積書IDを割り振っています。
見積書IDが空白の時、指定した数字に置換したいのですが、下記エラーが出てしまいます。
実行時エラー 3075
クエリ式awhere 見積書ID is null の構文エラー 演算子が有りません
下記コードです。
Private Sub コマンド232_Click()
Dim db As DAO.Database
Dim vsql As String
Dim a As Variant
a = 10
vsql = "update T見積書明細 "
vsql = vsql & " set 見積書ID=a"
vsql = vsql & "where 見積書ID is null"
Set db = CurrentDb
db.Execute vsql, dbFailOnError
db.Close
End Sub
空白の標記方法を直せばよいと思うのですがうまくいきません。
どうすれば直りますでしょうか?
よろしくお願いします!
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
まず私は、サブフォームを使ったことがありませんので、リレーション(自動で作成さてれる?)がどうなっているのかが想像つかないので、明確な回答がしづらい状況です。
ここから先は憶測ですので、現状とかけ離れているのであれば、無視していただいたほうが、混乱を招かないかもしれません。基本的には、インデックスとなるフィールドの値(ID等)は、データを作成するときに同時に挿入しておくべきものです。
元のテーブル(見積?)のIDは、サブフォームのテーブル(見積もり明細?)に、見積IDとして入っているべきで、1:他ということで、別にID(明細ID)を設定すべき内容と思います。
顧客テーブル
[顧客ID],[顧客名],[カナ],・・・
見積テーブル
[見積ID],[顧客ID],[発行日],・・・
明細テーブル
[見積ID],[明細ID],[物品ID],[個数],・・・
ざっくばらんに言うと上記のような感じですかね。
リレーションは双方の[見積ID]に張ってあればよいわけで、[明細ID]と関連付ける必要もありませんし、個別の見積もりごとに1,2,3とつけて行っても良いですし、ぶっちゃけオートナンバーであっても問題はありません(明細書の品目の表示順に関してあとから入れ替えたいなどのこだわりがないのであれば)。
あまりお助けになれなくて申し訳ありません。
ご回答ありがとうございます!
お話頂いている内容で間違いございません。
少ない情報の中ご回答頂きありがとうございます。
通常入力する際は見積テーブル、明細テーブル両方ともIDが挿入されるようになっています。
ただ、今試しているやりたい動作がフォーム、サブフォームの複製で、新しいレコードに新しいIDを振りながらフォーム、サブフォームのコピペです。
サブフォームのコピペ→新しいIDの番号取得、サブフォームデータにID入力→フォームのコピペ の流れで作っています。
今回は上記流れの中のサブフォームデータにID入力をするにはどうするかが分からずに質問に至りました。
やっていくうちにリレーションの話にまでなってしまいややこしくて申し訳ないです…
もともとおっしゃるように見積テーブルの見積ID=明細テーブルの見積IDで作っていたのですが、名前が同じことでエラーが起きたので別々にしていました。
本当は同じ方が分かりやすくて良いのですが、それでは動作しなかったことがあり今の状態に落ち着いています。
とんでもないです!つたない質問に丁寧に対応していただきありがとうございます!
No.3
- 回答日時:
maxnumber に何らかの数値を設定してください。
失礼しました!
Do Until rs.EOF = True
If rs!見積ID > maxnumber Then
maxnumber = rs!見積ID
End If
rs.MoveNext
Loop
今までの見積書IDはサブフォームで表示させていて、フォームの見積IDの最大値+1の値を見積書IDに反映させたくて今回の質問をしました。
今回教えて頂いた内容を踏まえて確認したところ、エラーが出てしまいました。
リレーションシップが設定されたレコードが必要なので、レコードの追加や変更を行うことができませんと出てきます。
見積IDが一、見積書IDが多のリレーションシップを組んでいます。
どう直せばよいでしょうか?
質問とずれてしまい申し訳ありません。よろしくお願いします。
No.2
- 回答日時:
変数に対応させるためのものです。
もともとの形だと、SQL文は、
... set 見積書ID = a where ...
となってしまいますが、
見積書IDのデータ型が数値の場合は、
... set 見積書ID = 1 where ...
文字列の場合は、
... set 見積書ID = ’1’ where ...
となるべきです。
変数aの値を変えれば、SQL文も応じて変わるようになっています。
ご返信ありがとうございます!
ご回答を参考に変数に直してやってみたのですが上手くいかず…
エラーは出ないのですが、動作もしない状態です。
aの値が上手く取得できてないのかと思いメッセージボックスの表示をさせてみたのですが、こちらは正しく表示されました。
IDは数字としてみていますが、文字列で試してもダメでした。
Dim vsql As String
Dim a As Variant
Dim maxnumber As Integer
a = maxnumber + 1
MsgBox a
vsql = "update T見積書明細 "
vsql = vsql & " set 見積書ID=" & a
vsql = vsql & "where 見積書ID is null"
a =10の時はうまく動作したのですが上記だとダメでした。
どうすれば修正できるでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
- Access(アクセス) アクセス レポートを開いたときにパラメーターの自動入力がしたい 4 2022/11/30 11:21
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Access(アクセス) テキストボックスの値をテーブルに入力したい 2 2022/06/28 12:08
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
仕入先から見積書をもらったの...
-
見積もりを断る返事は出すもの...
-
見積内容などに了承してもらう...
-
見積書の有効期限についてです...
-
見積書、受注書、契約書、に「...
-
上司から「これExcelで打ち出し...
-
見積書の発行日時変更は一般的...
-
見積仕様書の書式について
-
見積書の「不良率」、「利管費...
-
ビジネスに詳しいかた教えてく...
-
見積書の有効期限について
-
P/Iとは何の略?
-
上司から業者から出た見積を0.7...
-
見積もり書をEXELで作ったら突...
-
見積書をエクセルで作成時に連...
-
見積書の番号
-
お見積もりとご見積もり
-
1年前の日付で見積書を発行して...
-
先日ベランダの屋根を修理する...
-
2社から同じ見積り依頼が来た...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
仕入先から見積書をもらったの...
-
見積もりを断る返事は出すもの...
-
見積書の「不良率」、「利管費...
-
見積書、受注書、契約書、に「...
-
金型の数え方
-
見積内容などに了承してもらう...
-
上司から「これExcelで打ち出し...
-
1年前の日付で見積書を発行して...
-
上司から業者から出た見積を0.7...
-
他社の見積もりを代筆するのは...
-
見積書の発行日時変更は一般的...
-
見積書の有効期限について
-
皆さんなら交渉しますか?
-
見積仕様書の書式について
-
2社から同じ見積り依頼が来た...
-
P/Iとは何の略?
-
お見積もりとご見積もり
-
アクセス レポートを開いたとき...
-
見積もり書をEXELで作ったら突...
-
見積書の有効期限についてです...
おすすめ情報