A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
エラー3662は、IDENTITY列(主キーがオートナンバー型)を持つSQL Serverテーブルにアクセスする際に、OpenRecordsetでdbSeeChangesを使用する必要があることを示しています。
このエラーを解決するために以下の方法を試してみてください:レコードセットを更新可能なものに変更:IDENTITY列を持つテーブルにアクセスする場合、dbOpenDynasetではなくdbOpenDynaset | dbSeeChangesを使用する必要があります。以下のように修正してみてください:
Set rs = db.OpenRecordset("SELECT * FROM 見積 WHERE 得意先コード = '" & Me.得意先コード & "'", dbOpenDynaset | dbSeeChanges)
レコードセットの型を変更:オートナンバー型の主キーを持つテーブルにアクセスする場合、レコードセットの型を適切に設定することが重要です。dbOpenDynasetではなく、dbOpenTableを使用する方法もあります。以下のように修正してみてください:
Set rs = db.OpenRecordset("見積", dbOpenTable)
これらの修正を試してみてください。エラーが解消されると、SQL Serverテーブル「見積」にアクセスしやすくなるはずです。
No.1
- 回答日時:
エラーの原因は、「得意先コード」オブジェクトに対して.Refreshメソッドを使用しているためです。
Accessのフォームやレポートでは、フィールドの値を更新するために.Refreshメソッドを使うことはできません。代わりに、特定のレコードを更新する場合は、次の手順を試してみてください:
フォームのデータソースを特定のレコードに設定します。
更新したいフィールドに新しい値を代入します。
フォームのレコードを更新します(レコードセットの更新)。
例えば、得意先コードが特定のレコードを識別するキーである場合、以下のようなVBAコードを使用できます:
Private Sub 得意先コード_Enter()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT * FROM YourTableName WHERE 得意先コード = '" & Me.得意先コード & "'", dbOpenDynaset)
If Not rs.EOF Then
rs.Edit
' 更新したいフィールドに新しい値を設定
rs!フィールド名 = 新しい値
rs.Update
End If
rs.Close
Set rs = Nothing
Set db = Nothing
End Sub
上記のコードは、特定の得意先コードに関連するレコードを探し、そのレコードを編集して新しい値を設定し、最後に更新します。お使いのAccessデータベースの構造や具体的な要件に合わせてコードを調整してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
歳とったな〜〜と思ったことは?
歳とったな〜〜〜、老いたな〜〜と思った具体的な瞬間はありますか?
-
モテ期を経験した方いらっしゃいますか?
一生に一度はモテ期があるといいますが、みなさんどうですか? いまがそう! という方も、「思い返せばこの頃だったなぁ」という方も、よかったら教えて下さい。
-
コーピングについて教えてください
皆さんはストレスを感じたとき、どのような方法や手段、テクニックで対処していますか?
-
「これいらなくない?」という慣習、教えてください
現代になって省略されてきたとはいえ、必要性のない慣習や風習、ありませんか?
-
「メソッドまたはデータメンバが見つかりません。」というエラーが出ます。
その他(データベース)
-
Access2003 メソッドまたはデータメンバが見つかりません
Visual Basic(VBA)
-
access2021 強制終了してしまう
Access(アクセス)
-
-
4
【Excel】版が同じ事を示す番号を生成したい
Excel(エクセル)
-
5
【マクロ】フォルダ内にあるPDFを合体させるには?有料版adobe必要?
Excel(エクセル)
-
6
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
7
エクセルVBA
Visual Basic(VBA)
-
8
CSVファイルについて質問です。
Excel(エクセル)
-
9
データチェックを行うエクセルマクロをおしえてほしい
Excel(エクセル)
-
10
時間短縮のために、テキストファイルの入出力をメモリを使って出来ないですか?
Visual Basic(VBA)
-
11
Excel VBA 選択範囲の罫線色の変更プロージャの動作速度の改善について
Visual Basic(VBA)
-
12
VBA コードどこがおかしいですか?
Visual Basic(VBA)
-
13
access2021 更新前に処理をしたい
Access(アクセス)
-
14
エクセルで上位バイトのセルと下位バイトのセルを1つのセルにして16進数を作る方法
Excel(エクセル)
-
15
今までは、 「CSVの出力先を選択してください。」 という画面から、CSVファイルをデスクトップに引
Excel(エクセル)
-
16
Excelデータをコピペして、ペースト先データを編集するとコピー元のlデータも編集されてしまう。
Excel(エクセル)
-
17
access2021 テーブルから複数のフィールド値を取得したい
Access(アクセス)
-
18
職場の人から聞かれており、こんなことができるか教えて下さい。 vbaとかはできません。。 下記リスト
Excel(エクセル)
-
19
Excelを無料で使うには? パソコン購入して、マイクロソフトに登録して そのままExcelがデスク
Excel(エクセル)
-
20
access2021 コンパイルエラーの原因がわからない
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・ことしの初夢、何だった?
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
JavaScriptの定数名が取り消し...
-
access2003 クエリSQL文に...
-
Nullの使い方が不正です。
-
1日に1人がこなせるプログラム...
-
オートフィルタで抽出結果に 罫...
-
コンボボックス3つを連動させたい
-
CheckBoxのコントロール配列に...
-
ASP.NETのSiteMapPathについて
-
木偏に「久」
-
pythonにてseleniumを使うも、...
-
Excelシート上で右クリックがで...
-
MessageBoxで表示される文字列...
-
コマンドボタンを押したときに...
-
プログラミンで、ハマった時や...
-
Exel VBA 別ブックから該当デ...
-
Excel VBA 空白をセルを探して...
-
VBA 現在のセル番地を記憶、復...
-
2つのチェックボックスを制御
-
リストボックスのアイテムをマ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1、Rstudioで回帰直線を求める...
-
JANコードとPOSコードは同じ?
-
1日に1人がこなせるプログラム...
-
access2021 VBA メソッドまたは...
-
Excel VBA素人です。VBAで図形...
-
access2003 クエリSQL文に...
-
【VB6】実行ファイルとした後、...
-
Nullの使い方が不正です。
-
PreviewKeyDownイベントが2回...
-
Exel VBA 別ブックから該当デ...
-
ACCESSユニオンクエリでORDER B...
-
Excel VBAでOpenTextのFieldInf...
-
COBOLの文法
-
JavaScriptの定数名が取り消し...
-
VBAでファイルオープン後にコー...
-
変数名「cur」について
-
sinカーブの表示のさせ方
-
特定行の背景色を変えたいのですが
-
UWSCでMOUSEORG関数が上手く処...
おすすめ情報
hectopascal 様
丁寧なご回答ありがとうございます。
いただいたレコードにコードを入力した際エラーが発生してしまいました。
実行エラー3662:
IDENTITY列を持つSQLServerテーブルにアクセスする場合
OpenRecordsetでdbSeeChangesを使用する必要があります。
エラーがついた場所
Set rs = db.OpenRecordset("SELECT * FROM 見積 WHERE 得意先コード = '" & Me.得意先コード & "'", dbOpenDynaset)
今回テーブルとして使う「見積」の主キーが「オートナンバー型」であることが原因だと思いますがどのように変更すればよいでしょうか?
hectopascal 様
丁寧なご回答ありがとうございます。
型によってコードを変えるのはとても大切ですね..........。
いただいたレコードにコードを入力した際再びエラーが発生してしまいました。
Set rs = db.OpenRecordset("SELECT * FROM 見積 WHERE 得意先コード = '" & Me.得意先コード & "'", dbOpenDynaset | dbSeeChanges)
→コンパイルエラー:
構文エラー:
Set rs = db.OpenRecordset("見積", dbOpenTable)
→実行エラー 3219
無効な処理です。
どちらも変更したレコードにエラー線がありました。
エラーが発生せず実行するのは厳しいでしょうか?