先ほどAddnewを使用してと教えていただきましたが、
Addnewの使用方法がわかりません。
Private Sub 登録_Click()
Dim 氏名, 性別, 手段, 日付 As String
氏名 = Text1.Text
性別 = Text2.Text
手段 = Text3.Text
日付 = Text4.Text
Data1.Recordset.AddNew
Data1.Recordset("氏名") = 状態
Data1.Recordset("性別") = 性別
Data1.Recordset("通勤手段") = 手段
Data1.Recordset("日付") = 日付
'次の入力のため、データを白紙に戻す。
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
End Sub
DBとしてExcelを使用。
すると、「このアクションは関連付けられたObjectによってキャンセルされました。」と
エラーが表示されます。
ヘルプを見なさい。
DAO
rs.AddNew
rs("氏名") = 状態の値
rs.Recordset("性別") = 性別の値
rs.Recordset("通勤手段") = 手段の値
rs.Recordset("日付") = 日付の値
rs.Update
ADO
rs.AddNew "氏名" , 状態の値
テキストボックス移動の際はSetFocus使用
ありがとうございました。
レコード追加できるようになりました。
しかし、Excelのレコードを追加できるのですが、
そのExcelを立ち上げた状態でないと使用できません。
Excelを立ち上げずに追加はできるようになるのでしょうか?
Private Sub 登録_Click()
Dim ws As DAO.Workspace, db As DAO.Database
Dim rs As DAO.Recordset
Set ws = DBEngine.Workspaces(0)
Set db = ws.OpenDatabase("C:\アドレス.xls", False, False, "EXCEL 5.0;")
Set rs = db.OpenRecordset("Sheet1$")
Dim 氏名, 性別, 手段, 日付 As String
氏名 = Text1.Text
性別 = Text2.Text
手段 = Text3.Text
日付 = Text4.Text
rs.AddNew
rs("氏名") = 氏名
rs("性別") = 性別
rs("受信手段") = 手段
rs("日付") = 日付
rs.Update
End Sub
よろしくお願い致します。
そのまま実行してみましたがエクセルは立ち上げてなくても
追加されました。VBとエクセルのバグパッチ(サービスパック?)
を試してみて下さい。
それから今から書くコードを後ろに付け加えたほうが良いです。
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
やはり試してみましたが、ほかのユーザーが排他的に開いているか、
データを読み取る権限がありませんでした。と表示されます。
わかるかたいらっしゃいましたら、教えてください。
よろしくお願い致します。
良くわかりませんけどシステム管理者に訊いたほうが早くないですか?
デッドロックかアクセス権に問題があるみたいですし。
間違ってたらごめんなさい。ただ少なくとも家のパソコンで
その種のエラーはでないので。
大変ありがとうございました。
解決いたしました。
ツイート | ![]() |