
同じ現象がなさそうでしたので質問させていただきます。
インポートしたテーブルであれば問題なくレコードの更新が出来るのですが
実際のODBCで繋いだDBでは「ODBC--リンクテーブル'XXXX'での更新に失敗しました」となってしまいます。
DAOとADO両方試してみました。以下のものになります
こちらは教えていただいたものです。
Private Sub Sample3()
Dim rs As New ADODB.Recordset
Dim i As Integer
Const フィールド名 As String = "連番" ' ☆1
Const テーブル名 As String = "元テーブル" ' ☆1
Const 抽出 As String = "登録番号" ' ☆1
Const 並び替え As String = "登録番号" ' ☆1
i = 1
rs.Source = "SELECT " & フィールド名 & " FROM " & テーブル名 & _
" WHERE " & 抽出 & " LIKE 'ZZZZ%' ORDER BY " & 並び替え & ";"
rs.Open , CurrentProject.Connection, adOpenForwardOnly, adLockOptimistic
While (Not rs.EOF)
rs(フィールド名) = "ZZZZ" & Format(i, "0000")
rs.Update
rs.MoveNext
i = i + 1
Wend
rs.Close
End Sub
ADOだからダメなのかと思い
こちらは教えて頂いたものをDAOにしてみました。
Private Sub Sample3()
Dim Db As DAO.Database
Dim rs As DAO.Recordset
Dim i As Integer
Const フィールド名 As String = "連番" ' ☆1
Const テーブル名 As String = "元テーブル" ' ☆1
Const 抽出 As String = "登録番号" ' ☆1
Const 並び替え As String = "登録番号" ' ☆1
i = 1
Set Db = CurrentDb()
Set rs = Db.OpenRecordset("SELECT " & フィールド名 & " FROM " & テーブル名 & " WHERE " & 抽出 & " LIKE 'ZZZZ*' ORDER BY " & 並び替え & ";")
While (Not rs.EOF)
rs.Edit
rs(フィールド名) = "ZZZZ" & Format(i, "0000")
rs.Update
rs.MoveNext
i = i + 1
Wend
rs.Close
End Sub
両方とも「ODBC--リンクテーブル'XXXX'での更新に失敗しました」
となってしまいます。
どうすれば更新に失敗せずにできるのでしょうか?
No.3ベストアンサー
- 回答日時:
#1です
> やはりアクセス権限が怪しいですが、そのフィールドのみ書き込みで
> きなくするとか出来るのでしょうか?
> あるPCからなら書き込みできるとか・・・
PostgreSQL自体、1度触ったくらいなので、なんとも・・・
1つのフィールドだけと言うのも、変ですね
例えば、プライマリキーに設定されていて、他のテーブルとの関係で、操作出来なくなっているとか?考えられませんか?
「PostgreSQL」側で、操作可能な方法が、あるか?どうか?
そっちで、聞いてみるのも手かもしれませんね^^;
この回答への補足
ご回答ありがとうございます。
他のテーブルと関連付けされているのは「登録番号」のみになります。
で他のテーブルデータ(フィールド)を呼び出しています。
連番のフィールドは空欄の状態なのでそこに入れたかったのですが・・・
SQL側からやるしかないかもしれないですね・・・
No.2
- 回答日時:
う~ん、テーブルビューで、だめなら、ADO、DAOで、悩んでもだめでしょうね
PostgreSQLのODBCドライバは、何種類もあって、物によっては、更新処理が出来ないドライバ、更新処理が、可能なドライバが、あったと、思いましたが・・・ODBCドライバを確認するのと、後は、テーブルのアクセス権限の確認をするのが、必要になってきますね^^;
アカウントを作って、Access用に、ユーザ追加するか、かな?・・・
この回答への補足
ご回答ありがとうございます。
同テーブルの他のフィールドには問題なく書き込むことが出来るので
この連番フィールドだけが書き込みできないようになっているようです。
ドライバ自体にも問題はないと思います・・・
やはりアクセス権限が怪しいですが、そのフィールドのみ書き込みできなくするとか出来るのでしょうか?
あるPCからなら書き込みできるとか・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Excel(エクセル) このコードに追記事項の仕方を教えて下さい。 以下のコード内容に出てくる。セルH3が空白の場合、エラー 4 2023/08/03 00:22
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
このQ&Aを見た人はこんなQ&Aも見ています
-
ODBCの接続に失敗しました(3146)について
その他(Microsoft Office)
-
ACCESSのODBCリンクテーブルの更新クエリについて
その他(パソコン・周辺機器)
-
ACCESS2007 フォーム 「バリアント型でない変数にNull値を代入しようとしました」エラーの
SQL Server
-
-
4
Access DAOのExecuteメソッドのオプション(RecordsetOptionEnum)に
Access(アクセス)
-
5
ACCESSのODBCリンクテーブルに接続できなくなる
その他(データベース)
-
6
Access2010 accdbのエラー「ODBC--'EDP'への接続が失敗しました」について
Access(アクセス)
-
7
ACCESSからのODBC接続のみ応答なしになる
SQL Server
-
8
Accessのクエリで、replace関数を使い、データの中にある”をブランクに置き換えたいのですが
Access(アクセス)
-
9
accessでlaccdbファイルが削除できずファイルが使えない
Access(アクセス)
-
10
access2021 強制終了してしまう
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLServer2005のSQL文での別名...
-
INSERT INTO ステートメントに...
-
Accessのフィールド数が255しか...
-
ACCESS検索★ある文字を複数のフ...
-
ACCESS VBAにてCSV...
-
Accessでテーブルの値をテキス...
-
アクセス エラーを数値「0」に...
-
ACCESSでオートナンバーを任意...
-
ExcelのデータをコピーでACCESS...
-
ACCESSでテーブルのフィールド...
-
ACCESSで400以上のフィールドが...
-
アクセス メモ型 255文字...
-
主キーはオートナンバー型のID...
-
フィールド数の多すぎる・フィ...
-
ACCESSでの連番作成
-
アクセス A列コピー B列貼り...
-
ODBC--リンクテーブル'XXXX'で...
-
accessで重複を防ぎたい
-
ACCESS レーダーチャートのデー...
-
ACCESSでテーブルのチェックを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのフィールド数が255しか...
-
INSERT INTO ステートメントに...
-
Accessでテーブルの値をテキス...
-
ACCESSで400以上のフィールドが...
-
SQLServer2005のSQL文での別名...
-
アクセス エラーを数値「0」に...
-
accessのレポートで元になるテ...
-
アクセス メモ型 255文字...
-
【Access】フォームで自動計算...
-
Accessで、固定アルファベット+...
-
アクセス A列コピー B列貼り...
-
ACCESSでオートナンバーを任意...
-
ACCESSでの改行コード
-
ファイルメーカーでCountifの様...
-
主キーはオートナンバー型のID...
-
ACCESS VBAにてCSV...
-
accessで重複を防ぎたい
-
ACCESSで和暦を西暦に・・・
-
Access:リンクテーブルマネー...
-
ACCESSでテーブルのフィールド...
おすすめ情報