いつもお世話になります。
以下のようにしたいのですがうまくいきません。
F_Mainのボタンを押す
↓
F_Sub1(F_Mainと連結していない単票形式)のTxt1の値と
F_Sub2(F_Mainと連結した単票形式)のTxt2の値を
テーブル1のTxt3、Txt4へ書込む
F_Mainのボタンには以下を既述してます。
Dim cnADO As New ADODB.Connection
Dim rsADO As New ADODB.Recordset
Dim stSql As String
Set cnADO = CurrentProject.Connection
rsADO.CursorLocation = adUseClient
stSql = "insert into テーブル1 (Txt3,Txt4) values (" & Me.F_SUB1!Txt1 & "," & Me.F_SUB2!Txt2 & ");"
cnADO.Execute stSql
cnADO.Close: Set cnADO = Nothing
-----ここまで
以下のように連結フォームのF_SUB2のみにするとテーブル1に追加できました。
stSql = "insert into テーブル1 (Txt3,Txt4) values (" & Me.F_SUB2!Txt2 & "," & Me.F_SUB2!Txt2 & ");"
非連結フォームのTxt1の値を取得できていないのだと思いますが
どのようにすればよいのかわからないのでご教示ください。
No.2ベストアンサー
- 回答日時:
No.1です。
> テキストを扱うときは、シングルクォーテーションが必須で、
> 数値を扱うときは、シングルクォーテーションを省略できる
概ね問題ないのですが・・・細かいことをいうと、
・テキストの場合はダブルクォーテーション「"」又はシングルクォーテーション「'」が必須
・数値の場合は通常はクォーテーションは使わない
ということになるかと思います。
(確認したところ、確かに数値型のフィールドに、クォーテーションで括った数字を追加
しても、エラーは発生しないようでしたが(汗)
なお、数値ではなく式を設定(「1+1」等)した場合は、クォーテーションで括らなければ
演算結果の「2」が、括れば「1+1」という文字が、それぞれフィールドに追加されます:
追加先が数値型の場合は、「"1+1"」はエラーになります)
因みに、少なくともAccessのSQLでは、テキストを扱う場合は「'」で括るよりも「"」の方が
一般的のようです。
(→クエリのデザインビューで、テキスト型のフィールドの抽出条件欄に値を入力すると、
自動的に「"」で括られることから推測)
ただ、VBA上でSQL文を扱う場合は、SQL文自体を文字列として扱うために「"」で括る
必要があることから、前回のように「'」を使用します。
No.1
- 回答日時:
SQLでフォームやコントロールを参照する場合、連結か非連結かは特に影響はなかったはずなので、
疑うべきはデータ型の不一致などではないかと思います。
例えば、Txt1・Txt3は文字列、Txt2・Txt4は数値、ということはないでしょうか。
もしそうであれば、以下のようにすれば、Txt1の値がTxt3に記録されるようになると思います。
stSql = "insert into テーブル1 (Txt3,Txt4) values ('" & Me!F_SUB2!Txt1 & "'," & Me!F_SUB2!Txt2 & ");"
・・・非常に見づらい状態ですが(汗)、要は『Values (』と『"』の間、及び『& "』と『,』の間に、それぞれ「'」を
1つずつ追加して、「Me.F_SUB2!Txt1」がシングルクォーテーション(')で括られるようにしています。
※「Me.F_SUB1」と「.」で指定しても参照は可能ですが、コントロール(サブフォームを含む)であれば
「Me!F_SUB」と「!」を指定してやった方がよいと思います。
(例えば、うっかりフォームのプロパティと同じ名前のコントロールを作った場合などにも
誤動作を起こしにくいのではないかと:
同じ名前を重ねないに越したことはないのですが(汗))
・・・見当違いでしたら、ご容赦願います。
ご回答ありがとうございます!
ご指摘にように、シングルクォーテーションで囲むとうまくいきました!!
今後のために質問させてください。
テキストを扱うときは、シングルクォーテーションが必須で、
数値を扱うときは、シングルクォーテーションを省略できるという
認識で問題ないでしょうか?
一応、簡単に試した感じではそのような気がしてます・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- 電車・路線・地下鉄 TX-1000系 TX-2000系 TX-3000系 1 2022/09/19 14:06
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Access(アクセス) テキストボックスの値をテーブルに入力したい 2 2022/06/28 12:08
- ルーター・ネットワーク機器 L3スイッチからメディアコンバータを経由してPCへ接続出来ません。 3 2022/07/03 22:15
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- 数学 偏微分に関して教えてください。 g(t)=f(tx,ty)とおいたとき、g(t)の3階微分と4階微分 3 2023/06/27 21:04
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
[Access]帳票フォームにて連続する非連結コントロールに個々の値を入れるには
Access(アクセス)
-
帳票フォームに全レコードを表示できない
その他(データベース)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
-
4
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
5
Accessでフォームから別フォームのテキストボックスの値を設定する
Visual Basic(VBA)
-
6
Access サブフォームのレコードソースを変更するには
Access(アクセス)
-
7
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
8
ACCESS サブ・メインフォームのリンク方法を教えてください。
Access(アクセス)
-
9
AccessのフォームのテキストボックスにLOOKUPで表示したい
Access(アクセス)
-
10
アクセスVBAのMe!と[ ]
Access(アクセス)
-
11
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
12
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
13
Accessでサブフォームのボタンクリックイベントをメインフォームで処理したい。
Access(アクセス)
-
14
非連結サブフォームのレコードソース
その他(データベース)
-
15
Accessでレコードの保存をせずにフォームを閉じたい
Access(アクセス)
-
16
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
17
accessvba 複数条件でFilterをしたい
Access(アクセス)
-
18
親フォームからサブフォームのレコードソースを設定
Access(アクセス)
-
19
Accessで、一覧からクリックして詳細表示したい
その他(Microsoft Office)
-
20
Accessでレコードを別テーブルへコピーするには
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのフォーム上にレコード...
-
アクセスでテーブルの変更内容...
-
アクセスのフォームのビューが...
-
Accessフォームのテキストボッ...
-
Access2007 フォーム上データの...
-
ADOでRecordsetオブジェクトを...
-
Access 別フォームへの再クエ...
-
ACCESSのフォームからデータの...
-
Access フォーム上でコンボボッ...
-
access 非連結のサブフォームの...
-
access レコードソースを選択...
-
accessの自動更新処理をできな...
-
ACCESSフォームでのレコード数...
-
ACCESS レポートへの表示・非表示
-
「メソッドまたはデータメンバ...
-
アクセスでの項目追加について...
-
Access2000で起動時にフォーム...
-
他フォームのチェックボックス...
-
ACCESSで入力フォームをHTMLフ...
-
選択したチェックボックスのみ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSのフォームからデータの...
-
Accessのフォーム上にレコード...
-
選択したチェックボックスのみ...
-
アクセスでテーブルの変更内容...
-
アクセスのフォームのビューが...
-
accessの自動更新処理をできな...
-
Access 別フォームへの再クエ...
-
Accessフォームのテキストボッ...
-
ACCESSで入力フォームをHTMLフ...
-
「メソッドまたはデータメンバ...
-
帳票フォームに全レコードを表...
-
テキストボックスの値をテーブ...
-
アクセス 0以外をカウントす...
-
テキストボックス(アクセス)内...
-
Access2002 フォームを閉じるた...
-
アクセスでの項目追加について...
-
Access フォーム上でコンボボッ...
-
Accessのフォームで作業領域を...
-
入力途中の入力した値をすべて...
-
ACCESSの表形式で、レコードを...
おすすめ情報