ExcelからAccessへデータを書き込もうとしていますが、うまくいきません。原因は、フィールド名にあるような気がしますが、どなたかアドバイス頂けないでしょうか?宜しくお願いいたします。
Accessのテーブルで、フィールド名を
ログイン名、名前、年齢、血液型、住まい1、住まい2、仕事、確認日時
としエクセルから
With RecSet
.Open MySQL, Excite_DB, , adLockOptimistic
.AddNew
With .Fields
.Item("ログイン名").Value = "test_LogIn"
.Item("名前").Value = "山田"
.Item("年齢").Value = "25"
.Item("血液型").Value = "A"
.Item("住まい1").Value = "東京都"
.Item("住まい1").Value = "新宿区"
.Item("仕事").Value = "会社員"
.Item("確認日時").Value = DateValue("2007/05/04 12:20") + TimeValue("2007/05/04 12:25")
End With
.Update
.Close
End With
と書き込もうかとしたところ、実行時エラー:3265
要求された名前、または、序数に対応する項目がコレクションに見つかりませんとでます。が発生します。
そこで、
For Each MyField In .Fields
Debug.Print MyField.Name
Next
とフィールド名を取得したところ
ログイン名、Expr1001、Expr1002、Expr1003、住まい1、Expr1004、Expr1005、確認日時
となります。
そこで、書込み時のフィールド名を、"Expr1001"とすると今度は、
実行時エラー:-2147217887
UpdateまたはCancelupdeteメゾッドには、対応するAddNewまたは、Editメゾッドが必要ですになります。
よろしくお願いいたします。
Accessでは、間違いなくフィールド名が設定されているのですが、
No.1ベストアンサー
- 回答日時:
> With RecSet
> .Open MySQL, Excite_DB, , adLockOptimistic
の2行目で渡している SQL にミスがあると思います。SQL の内容
は省略されているので、具体的にはアドバイスできませんが、
見直してみて下さい。
> Expr1001
これは Access が設定する仮フィールド名です。これが発生する
一例をあげれば、
・名前: tMember
・フィールド: ID, Shimei, Birthday
というテーブルがあったとして、次のような SQL を渡した場合。
SELECT ID,Shimei,Birthday,Shimei FROM tMember;
[ Shimei ]フィールドを2重で Select してます。
この時、一方は[ Shimei ]という正しいフィールド名で、もう一方
は [ Expr1001 ] というフィールド名になってしまいます。
お返事ありがとうございます。
仰る通り、SQLに間違いがありました。
読み込みのSQLと書込みのSQLを共有していたのですが、読み込みの時にNullの値を文字列0に変換させるために、
SELECT ID,Shimei,Birthday & '', FROM tMember;
と、& ''を挿入していたのが原因でした。
読み出しでは上手くいっていたので、SQLには絶対に間違いはないと思いこみ1日以上悩んでいました。
本当にありがとうございます。助かりました。
& ''を削除したところ上手くいきました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) ListView1の条件のやり方 3 2022/06/18 22:43
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Access(アクセス) accessでexcelを読み込む時のデータ型 1 2022/03/28 19:45
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
差込印刷での全角表示について...
-
エクセルにおける「フィールド...
-
クエリで割り算する方法を教え...
-
フィールドの更新がない
-
ACCESS 重複データを1...
-
アクセスのクエリでパラメータ...
-
アクセスの操作について
-
Word差し込み印刷のハイフン(...
-
Accessのハイパーリンクをクリ...
-
ACCESSのデータに自動で半角ス...
-
ACCESSでフィールドに-(ハイフ...
-
DELL PowerConnect 6224 のRAM ...
-
エクセルデータをワードで差し...
-
アクセスVBAでの添付ファイルの...
-
Access クエリ上で表示させた割...
-
mysoftbankのEメールヘッダ閲覧...
-
ACCESS2000でExcelから特定フィ...
-
実行時エラー '3464': 抽出条件...
-
アクセスでのテキストデータ取...
-
ACCESSで条件によってフォーム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
差込印刷での全角表示について...
-
エクセルにおける「フィールド...
-
エクセルデータをワードで差し...
-
ACCESS 重複データを1...
-
フィールドの更新がない
-
クエリで割り算する方法を教え...
-
ACCESSのデータに自動で半角ス...
-
Word差し込み印刷のハイフン(...
-
Accessのハイパーリンクをクリ...
-
Acsess アクセス のクエリで...
-
アクセスのクエリでパラメータ...
-
ACCESSでフィールド名の変更(...
-
ACCESSで条件によってフォーム...
-
実行時エラー '3464': 抽出条件...
-
列を移動させるvbaコードを教え...
-
クエリーで、全角混じりデータ...
-
レコードの内容にハイフンをつ...
-
sqlserverにはグループ集計のfi...
-
Accessフィールド分割
-
ACCESSでフィールドに-(ハイフ...
おすすめ情報