Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


402 / 2272 ツリー ←次へ | 前へ→

【11862】データベースまたはオブジェクトは読み取り専用なので、更新できません。 あつこ 10/11/25(木) 12:59 質問[未読]
【11863】Re:データベースまたはオブジェクトは読み... よろずや 10/11/25(木) 21:26 発言[未読]
【11864】Re:データベースまたはオブジェクトは読み... あつこ 10/11/26(金) 10:21 発言[未読]
【11865】Re:データベースまたはオブジェクトは読み... よろずや 10/11/26(金) 19:53 発言[未読]
【11866】Re:データベースまたはオブジェクトは読み... あつこ 10/11/26(金) 23:19 発言[未読]
【11867】Re:データベースまたはオブジェクトは読み... あつこ 10/11/27(土) 0:41 発言[未読]
【11869】Re:データベースまたはオブジェクトは読み... あつこ 10/11/27(土) 19:19 お礼[未読]

【11862】データベースまたはオブジェクトは読み取...
質問  あつこ  - 10/11/25(木) 12:59 -

引用なし
パスワード
   はじめまして。よろしくお願いします。

WindowsXP
Access2010
ODBC=sybase 5.0

Accessで、sybaseのテーブルをリンクして
更新(NewAdd)しようとした所、題名のエラーがでます。

テーブルに主キーの設定がない事が原因と検索できたので
sybaseのテーブルを変更し、Accessもリンクを貼りなおしたのですが
まだ解決できません。

<ソース>

Global dbConn   As ADODB.Connection
Global dbRecordSet As ADODB.Recordset


dbRecordSet.Open "テーブル名", dbConn, adOpenKeyset, adLockOptimistic

dbRecordSet.AddNew   <= ここでエラー
  dbRecordSet!コード = Me!コード
  dbRecordSet!名前 = Me!名前
dbRecordSet.update

【11863】Re:データベースまたはオブジェクトは読...
発言  よろずや  - 10/11/25(木) 21:26 -

引用なし
パスワード
   >Global dbConn   As ADODB.Connection
>Global dbRecordSet As ADODB.Recordset
>
>
>dbRecordSet.Open "テーブル名", dbConn, adOpenKeyset, adLockOptimistic

dbConn にも dbRecordSet にも 値をセットしてませんが、
掲示板への記載を省略したのですか?
省略されると回答できませんょ。

【11864】Re:データベースまたはオブジェクトは読...
発言  あつこ  - 10/11/26(金) 10:21 -

引用なし
パスワード
   >dbConn にも dbRecordSet にも 値をセットしてませんが、
>掲示板への記載を省略したのですか?
>省略されると回答できませんょ。


ご指摘ありがとうございます。
うっかり転記漏れをしてしまいました。

以下のSet文2行をコーディングしています。

'ADO カレントデータベース接続
Set dbConn = Application.CurrentProject.Connection
Set dbRecordSet = New ADODB.Recordset


dbRecordSet.Open "テーブル名", dbConn, adOpenKeyset, adLockOptimistic

dbRecordSet.AddNew   <= ここでエラー
  dbRecordSet!コード = Me!コード
  dbRecordSet!名前 = Me!名前
dbRecordSet.update


他にも何か気づきがありましたら、どんな事でも構いませんので
よろしくお願いいたします。

【11865】Re:データベースまたはオブジェクトは読...
発言  よろずや  - 10/11/26(金) 19:53 -

引用なし
パスワード
   そのリンクテーブルを開いてデータを入力することはできますか?

【11866】Re:データベースまたはオブジェクトは読...
発言  あつこ  - 10/11/26(金) 23:19 -

引用なし
パスワード
   >そのリンクテーブルを開いてデータを入力することはできますか?

ACCESSで、ですよね。
・・・テーブルの中身の表示だけで、入力や更新はできないです。
これが原因ですか。。。

リンクテーブルとはこういうものかと思っていました。。。
お恥ずかしい。

【11867】Re:データベースまたはオブジェクトは読...
発言  あつこ  - 10/11/27(土) 0:41 -

引用なし
パスワード
   ずっと悩んでいて、検索方法を変えてみようと思い
「ADO リンクテーブル」で検索したら
例にでてくるコーディングが、わたしのコーディングと違うようです。

"Provider=Microsoft.Jet.OLEDB.4.0;"  とかセットしたり。
でもこれは外部テーブルに直接アクセスする場合でしょうか。

やはり、リンクテーブルはローカルテーブルと同じように扱えるはずと思っているので、ACCESS設定が悪いのでしょうか。

すみません。つぶやきのような投稿になってしまい。。。
引き続き、気づきがありましたら、お願いいたします。

【11869】Re:データベースまたはオブジェクトは読...
お礼  あつこ  - 10/11/27(土) 19:19 -

引用なし
パスワード
   >そのリンクテーブルを開いてデータを入力することはできますか?

再度、テーブルを確認して、リンクテーブルを作り直したら
入力できました。デザインビューでプライマリーキーの設定も確認できました。

でも、一度プログラムを実行してしまうと、
読み取り専用に変わってしまいます。
Accessを開きなおしても読み取り専用になっています。
プログラムのどこかで読み取り専用にしてしまっているんでしょうね。。

昨日から色々調べておりまして、テーブルにプライマリーキーを設定して、
リンクテーブル更新するよりも
ODBCに接続して、元のテーブルの方を接続する方がいいのかと思い始めまして
そちらで解決を狙っていこうと思います。

なので、この質問は閉じさせていただきます。

よろずやさん、お忙しい中、本当にありがとうございました。
感謝いたします。

402 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078193
(SS)C-BOARD v3.8 is Free