![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
はじめまして。
VBでフォームに作ったテキストボックス(text1、text2、text3)に値を入れてコマンドボタンを押したらAccessのテーブルに値を登録できるようにしたいのですが上手くいきません。自分で調べながらコーディングしたのですが上手く動かずどうすれば動くのかVBのコーディングを教えていただきたいです。よろしくお願いします。
[Accessのファイル名]
db1.mdb
[db1.mdbのテーブル名]
ListName
[ListNameの各項目]
名前、住所、生年月日
[VBのフォーム]
text1.textbox、text2.textbox、text3.textbox
Add.command
[コーディングの内容]
Microsoft DAO 3.6 Object Library参照設定
Private Sub Add_Click()
Dim strSQL As String
Dim dbName As String
Dim dbs As DAO.Database
Dim myset As DAO.Recordset
Dim ws As DAO.Workspace
Set ws = DBEngine.Workspaces(0)
Set dbs = ws.OpenDatabase("C:\db1.mdb")
If Dir("C:\db1.mdb") <> "" Then
strSQL = "INSERT INTO Listname (名前,生年月日, _
住所) values(text1.text, text2.text, text3.text)"
Me.AutoRedraw = True
Set myset = dbs.OpenRecordset(strSQL)
End If
End Sub
※無効な処理です。というエラーが出ます。
No.3
- 回答日時:
[エラー箇所]
Set rstListname = dbs.OpenRecordset("Listname", dbOpenTable)
バグ dbsCurrent.・・・・
Private Sub Command1_Click()
Dim dbsCurrent As DAO.Database
Dim strQuerySQL AS String
strQuerySQL = "INSERT INTO テーブル1 (ID, 姓) VALUES (Text1, '" & Text2 & "')"
Set dbsCurrent = DBEngine.Workspaces(0).OpenDatabase("C:\Temp\db1.mdb")
dbsCurrent.Execute strQuerySQL
dbsCurrent.Close
End Sub
数字は TextBoxName
文字は "'" & TextBoxName & "'"
日付は "#" & TextBoxName & "#"
No.2
- 回答日時:
Private Sub Add_Click()
Dim strSQL As String
Dim dbName As String
Dim dbsCurrent As DAO.Database
Dim rstListname As DAO.Recordset
If Dir("C:\db1.mdb") <> "" Then
Set dbsCurrent = DBEngine.Workspaces(0).OpenDatabase("C:\db1.mdb")
Set rstListname = dbs.OpenRecordset("Listname", dbOpenTable)
With rstMyset
.AddNew
.Fields("名前")= Text1
.Fields("生年月日")= CDate(Text2)
.Fields("住所")= Text3
.Update
End With
rstListName.Close
dbsCurrent.Close
End If
End Sub
.Fields("生年月日")= CDate(Text1) <-- "#" & Text1 & "#" かちと怪しい!
Insert文を使う場合は、
Private Sub Command1_Click()
Dim dbsCurrent As DAO.Database
Set dbsCurrent = DBEngine.Workspaces(0).OpenDatabase("C:\Temp\db1.mdb")
dbsCurrent.Execute "INSERT INTO テーブル1 (ID, 姓) VALUES (4, '金子')"
dbsCurrent.Close
End Sub
この回答への補足
お世話になっております。
迅速な回答ありがとうございます。
教えていただいたとおりに組んでみたら以下のエラーになりました。
[エラー箇所]
Set rstListname = dbs.OpenRecordset("Listname", dbOpenTable)
[エラー内容]
オブジェクトが必要です。
申し訳ありませんが回答お願い致します。
またInsert文を使う方法ですとソース上にアクセスに
登録する項目値をベタ書きすれば上手く動きましたが
テキストボックスに入っている値をInsertしようとすると上手く動きません。VALUESの中にはオブジェクトを入れて動かしたりしてみたのですが上手く動きません。
申し訳ありませんがこちらの方も回答できればよろしくお願い致します。
No.1
- 回答日時:
レコードセット作ってaddnewするのが一般的かと思いますが。
Set db = CurrentDb()
Set rs = db.OpenRecordset("ListName")
(空白などの条件づけして適切な内容かを取捨選択)
rs.AddNew
rs!名前 = text1.text
rs!住所 = text2.text
rs!生年月日 = text3.text
rs.Update
rs.close
db.close
参考URL:http://www.accessclub.jp/dao/12.html
この回答への補足
お世話になっています。
迅速な回答ありがとうございます。
教えていただいた内容とURLを見させていただいて
組んでみたのですが以下のエラーが出て登録できません。
[エラー箇所]
Set rs = db.OpenRecordset("ListName")
[エラー内容]
オブジェクト変数またはWithブロック変数が設定されていません。
なにがおかしいのでしょうか?
申し訳ありませんが回答お願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/17 11:59
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
テキストボックスの値をテーブルに追加
その他(データベース)
-
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
-
4
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
5
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
6
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
7
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
8
Accessを開きなおすとテキストボックスの値がエラー#Name?になる
その他(データベース)
-
9
ACCESSでテーブルにあるチェックボックスを一括でYesにする方法を教えてください
Access(アクセス)
-
10
アクセスの初心者の質問です(空白の場合に他のフィールドを表示させたい。)
Access(アクセス)
-
11
アクセス: フォーム上で計算した数字をテーブルに保存したい。
Access(アクセス)
-
12
access テキストボックスの値取得
Access(アクセス)
-
13
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
14
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
15
テキストボックス(アクセス)内のテキストの保存
その他(データベース)
-
16
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
17
VBAをつかってクエリの情報を抽出するには??
Visual Basic(VBA)
-
18
Access サブフォームでの選択行の取得
その他(データベース)
-
19
<VB.NET>INSERT文でDBにデータを入れたい
Visual Basic(VBA)
-
20
ACCESSでフォームを使って、テーブルを参照、データ入力、データ更新をしたいのです
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL文が実行できません
-
実行時エラー3131 FROM 句の構...
-
VBAについて質問です
-
codeigniter 複数モデルでトラ...
-
array_mapを使ったエスケープ処理
-
PHP内でUPDATE構文を使用してい...
-
PEARを使ったフェッチのしかた。
-
MDB2 [Call to undefined metho...
-
phpのPEARのMDB2を使って出たエ...
-
PEAR でprepareメソッドがエラーに
-
年月の情報だけを基に階層構造...
-
ランダム文字列をDBにINSERT
-
DBで検索結果に該当するデータ...
-
<VB.NET>INSERT文でDBにデータ...
-
日付範囲で検索した後に降順に...
-
OracleからAccessへのインポート
-
MySQLでデータベースにデータin...
-
データベースに存在するデータ...
-
mysql>PHPにデータ表示、10件ご...
-
phpでmysqlを使ってデータベー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー3131 FROM 句の構...
-
VBAをつかってクエリの情報を抽...
-
テキストボックスに入れた内容...
-
エラー3011
-
SQL文が実行できません
-
SELECT文を発行して、ACCESSよ...
-
in 'where clause'のエラーの理由
-
phpのPEARのMDB2を使って出たエ...
-
Call to undefined method MDB2...
-
LocalのNotesメールDBをVBAで参...
-
PHP内でUPDATE構文を使用してい...
-
単純ですが、意外と穴?なデー...
-
DAOでデータベースを二つ開くに...
-
PEAR でprepareメソッドがエラーに
-
pearがエラーになる
-
見られたくないファイル
-
SQL文の実行に失敗しました???
-
年月の情報だけを基に階層構造...
-
Accessのテーブルへ複数の主キ...
-
例外処理
おすすめ情報