同じ現象がなさそうでしたので質問させていただきます。
インポートしたテーブルであれば問題なくレコードの更新が出来るのですが
実際の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.2
- 回答日時:
う~ん、テーブルビューで、だめなら、ADO、DAOで、悩んでもだめでしょうね
PostgreSQLのODBCドライバは、何種類もあって、物によっては、更新処理が出来ないドライバ、更新処理が、可能なドライバが、あったと、思いましたが・・・ODBCドライバを確認するのと、後は、テーブルのアクセス権限の確認をするのが、必要になってきますね^^;
アカウントを作って、Access用に、ユーザ追加するか、かな?・・・
この回答への補足
ご回答ありがとうございます。
同テーブルの他のフィールドには問題なく書き込むことが出来るので
この連番フィールドだけが書き込みできないようになっているようです。
ドライバ自体にも問題はないと思います・・・
やはりアクセス権限が怪しいですが、そのフィールドのみ書き込みできなくするとか出来るのでしょうか?
あるPCからなら書き込みできるとか・・・
No.3ベストアンサー
- 回答日時:
#1です
> やはりアクセス権限が怪しいですが、そのフィールドのみ書き込みで
> きなくするとか出来るのでしょうか?
> あるPCからなら書き込みできるとか・・・
PostgreSQL自体、1度触ったくらいなので、なんとも・・・
1つのフィールドだけと言うのも、変ですね
例えば、プライマリキーに設定されていて、他のテーブルとの関係で、操作出来なくなっているとか?考えられませんか?
「PostgreSQL」側で、操作可能な方法が、あるか?どうか?
そっちで、聞いてみるのも手かもしれませんね^^;
この回答への補足
ご回答ありがとうございます。
他のテーブルと関連付けされているのは「登録番号」のみになります。
で他のテーブルデータ(フィールド)を呼び出しています。
連番のフィールドは空欄の状態なのでそこに入れたかったのですが・・・
SQL側からやるしかないかもしれないですね・・・
お探しの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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
ACCESSのODBCリンクテーブルの更新クエリについて
その他(パソコン・周辺機器)
-
ODBCの接続に失敗しました(3146)について
その他(Microsoft Office)
-
エラー(型が一致しません。)の対処方法
Visual Basic(VBA)
-
-
4
ODBCで接続するとDBに変更/追加出来ない。
SQL Server
-
5
カレントレコードが無い事を判定させる方法
Visual Basic(VBA)
-
6
アクセスVBAのMe!と[ ]
Access(アクセス)
-
7
Access サブフォームでの選択行の取得
その他(データベース)
-
8
選択したチェックボックスのみチェックを入れたいのですが
その他(データベース)
-
9
ACCESSでテーブルにあるチェックボックスを一括でYesにする方法を教えてください
Access(アクセス)
-
10
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
11
ACCESSでコントロールソースの変更
Access(アクセス)
-
12
AccessからOrcleのODBCリンクテーブルへの挿入
その他(データベース)
-
13
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
14
レコードセットにnullの場合
Visual Basic(VBA)
-
15
Accessのフォーマット時イベント
その他(データベース)
-
16
アクセス:フォームビューからデザインビューへの切替えをロックしたい
Access(アクセス)
-
17
Access VBA Me.Requery レコードは削除されています エラー
その他(データベース)
-
18
Accessでブレークポイントを設定してないのに一時停止してしまう
その他(データベース)
-
19
インデックスまたは主キーにはnull値を使用できません
Access(アクセス)
-
20
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IT用語について質問です。 以前...
-
ACCESSでテーブルのフィールド...
-
Accessでテーブルの値をテキス...
-
【Access】フォームで自動計算...
-
accessのレポートで元になるテ...
-
ExcelからAccessにデータを取り...
-
Access2003 空レコード挿入
-
ACCESSで和暦を西暦に・・・
-
アクセスのテーブルデータをCSV...
-
Accessでフィールドを追加したい
-
ACCESS VBAにてCSV...
-
オプショングループから文字を入力
-
アクセス エラーを数値「0」に...
-
ACCESSの既存テーブルに、EXCEL...
-
Accessで、フィールドにルック...
-
ACCESS検索★ある文字を複数のフ...
-
ACCESS.ルックアップの値以外...
-
Sqlserver2005でテーブルを作成...
-
accessで順位の合計の順位の求め方
-
view作成時にデータ型を変更し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブルの値をテキス...
-
Accessのフィールド数が255しか...
-
ACCESSで400以上のフィールドが...
-
ACCESSでの改行コード
-
INSERT INTO ステートメントに...
-
accessのレポートで元になるテ...
-
アクセス エラーを数値「0」に...
-
ExcelのデータをコピーでACCESS...
-
Accessで、固定アルファベット+...
-
Access 昇順・降順で並び替え...
-
accessで重複を防ぎたい
-
アクセス VBAで列の入れ替...
-
SQLServer2005のSQL文での別名...
-
ACCESSで和暦を西暦に・・・
-
ACCESS2000「定義されているフ...
-
主キーはオートナンバー型のID...
-
ACCESSでオートナンバーを任意...
-
ACCESSでテーブルのフィールド...
-
アクセス A列コピー B列貼り...
-
IT用語について質問です。 以前...
おすすめ情報