DBGridのレコード追加方法2(Addnewについて)

解決


ほやん  2002-07-25 15:48:38  No: 104568  IP: [192.*.*.*]

先ほど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によってキャンセルされました。」と
エラーが表示されます。

編集 削除
親分  2002-07-25 16:35:13  No: 104569  IP: [192.*.*.*]

ヘルプを見なさい。

DAO
rs.AddNew
  rs("氏名") = 状態の値
  rs.Recordset("性別") = 性別の値
  rs.Recordset("通勤手段") = 手段の値
  rs.Recordset("日付") = 日付の値
rs.Update

ADO
rs.AddNew "氏名" , 状態の値

テキストボックス移動の際はSetFocus使用

編集 削除
ほやん  2002-07-26 18:33:00  No: 104570  IP: [192.*.*.*]

ありがとうございました。
レコード追加できるようになりました。
しかし、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

よろしくお願い致します。

編集 削除
とらきち  2002-07-28 02:19:58  No: 104571  IP: [192.*.*.*]

そのまま実行してみましたがエクセルは立ち上げてなくても
追加されました。VBとエクセルのバグパッチ(サービスパック?)
を試してみて下さい。

それから今から書くコードを後ろに付け加えたほうが良いです。
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing

編集 削除
ほやん  2002-07-29 11:08:33  No: 104572  IP: [192.*.*.*]

やはり試してみましたが、ほかのユーザーが排他的に開いているか、
データを読み取る権限がありませんでした。と表示されます。
わかるかたいらっしゃいましたら、教えてください。
よろしくお願い致します。

編集 削除
とらきち  2002-07-29 19:10:42  No: 104573  IP: [192.*.*.*]

良くわかりませんけどシステム管理者に訊いたほうが早くないですか?
デッドロックかアクセス権に問題があるみたいですし。
間違ってたらごめんなさい。ただ少なくとも家のパソコンで
その種のエラーはでないので。

編集 削除
ほやん  2002-07-30 10:09:41  No: 104574  IP: [192.*.*.*]

大変ありがとうございました。
解決いたしました。

編集 削除