A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
テーブルに「ID」「名称」があり、
lst_1でIDを、txt_1で名称を表示しているとします。
Private Sub lst_1_AfterUpdate()
txt_1.Value=lst_1.column(1)
End Sub
Private Sub txt_1_AfterUpdate()
If (<名称をtxt_1.value1とテーブルで比較> = False ) then
<名称をtxt_1.Valueで更新するクエリ>
End If
End Sub
こんな感じでどうでしょうか?
No.4
- 回答日時:
要は非連結のフォームに既存のレコードを取り出し
そこで入力した値に更新したいということですね
レコードの更新は連結フォームで行うのが簡単なんですが
非連結フォームからやりたいという人も結構いますね
その場合データの整合性チェックなどは全部自分で行わなければいけなくなります
(テーブルに格納できない値を書き込もうとするとコードが止まってしまいます)
その辺はいいのでしょうか?(覚悟はできているのでしょうか?)
後はテーブルに主キーはあるのか
主キーを書き換えることがあるのか
などで難しさが変わってきますね
その辺はどうなんでしょうか
No.3
- 回答日時:
s_husky です。
ErrMessage 関数を使っていました。
同様に下記の回答で紹介しています。
※なお、プログラマではなく単なる素人ですので参考程度に・・・。
No.2
- 回答日時:
次は、フォームに配置された非連結コントロールの値をテーブルに書き込むサンプルコードです。
各コントロールが更新される都度にcmdUpdateRecord_Clickをコールしてもいいです。
が、ネットワークトラフィックの混雑の原因になるのでお勧めしません。
Private Sub cmdUpdateRecord_Click()
Dim StopNow As Boolean
StopNow = Not UpdateRecord(Me, "SELECT * FROM id管理表 WHERE id_name='Test'")
If Not StopNow Then
Message "[id管理表] を更新しました。"
End If
End Sub
UpdateRecord関数は、いわゆる非連結フォームに入力されたデータをデータベースに書き込む関数です。
書き込む表の列とフォームに配置したコントロールとの対応関係は、コントロールの名前で判断します。
もちろん、更新対象を特定する情報も引数として渡す必要があります。
フォーム上の書き込むべきコントロールは field_列名しておきます。
そうすれば、書き込むべきコントロールもテーブルの列名も知ることができます。
非連結フォームを解読してテーブルを更新できる理由です。
Public Function UpdateRecord(ByVal frm As Form, _
ByVal strSQL As String, _
Optional ByVal Echo As Boolean = False) _As Boolean
On Error GoTo Err_UpdateRecord
Dim isOK As Boolean
Dim I As Integer
Dim N As Integer
Dim fldName AS String
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim fld As ADODB.Field
isOK = True
Set cnn = CurrentProject.Connection
' =================
' Begin with: cnn
' -----------------
.Errors.Clear
.BeginTrans ← 最初に書かないとエラートラップでエラーが発生する可能性があります。
' ----------------
' Recordset Open
' ----------------
Set rst = New ADODB.Recordset
rst.Open strSQL, _
cnn, _
adOpenStatic, _
adLockOptimistic
' =================
' Begin With: rst
' -----------------
With rst
IF Not .BOF Then
N = frm.Controls.Count - 1
For Each fld In .Fields
For I = 0 To N
fldName = frm.Controls(I).Name
If Left$(fldName, 6) = "field_" Then
If Mid$(fldName, 7) = fld.Name Then
fld.Value = frm.Controls(I).Value
Exit For
End If
End If
Next I
Next fld
.Update
End If
End With
' ---------------
' End With: rst
' ===============
.CommitTrans
' ---------------
' End With: cnn
' ===============
If Echo Then
MsgBox " 1件のレコードを更新または保存しました。", vbInformation, " お知らせ"
End If
Exit_UpdateRecord:
On Error Resume Next
rst.Close
Set rst = Nothing
UpdateRecord = isOK
Exit Function
Err_UpdateRecord:
isOK = False
If cnn.Errors.Count > 0 Then
ErrMessage cnn.Errors(0), strSQL
cnn.RollbackTrans
Else
MsgBox "プログラムエラーが発生しました。(UpdateRecord)" & Chr$(13) & Chr$(13) & _
"・Err.Description=" & Err.Description & Chr$(13) & _
"・SQL Text=" & strSQL, _
vbExclamation, " 関数エラーメッセージ"
End If
Resume Exit_UpdateRecord
End Function
なお、単一列であれば、
CnnExecute UPDATE文
で事足ります。
CnnExecute 関数に関しては、下記の<リストボックスの値・・・>の回答を参照して下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
自分のセンスや笑いの好みに影響を受けた作品を教えて
子どもの頃に読んだ漫画などが その後の笑いの好みや自分自身のユーモアのセンスに影響することがあると思いますが、 「この作品に影響受けてるな~!」というものがあれば教えてください。
-
ギリギリ行けるお一人様のライン
おひとり様需要が増えているというニュースも耳にしますが、 あなたが「ギリギリ一人でも行ける!」という場所や行為を教えてください
-
テキストボックスに入れた内容をAccessのテーブルに登録する方法を教えてください。
Visual Basic(VBA)
-
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
access別のテーブルを参照してテキストボックスに値を表示、編集したい
Access(アクセス)
-
-
4
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
5
access テキストボックスの値取得
Access(アクセス)
-
6
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
7
Access2013。テキストボックスにクエリの値を表示したい。 ①テーブル「受注情報」 フィールド
Access(アクセス)
-
8
ACCESSのVBAにてExcelのシートをコピーしたい
その他(データベース)
-
9
テキストボックス(アクセス)内のテキストの保存
その他(データベース)
-
10
Accessで、フォームからフォームへ値を引き継ぐやり方
Access(アクセス)
-
11
Accessのテーブルデータを一気にVBAで追加したい・・
その他(データベース)
-
12
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
13
Accessでフォームから別フォームのテキストボックスの値を設定する
Visual Basic(VBA)
-
14
ACCESSのコンボボックスで入力した値がTABLEに反映されずに数字がでます
Access(アクセス)
-
15
アクセス: フォーム上で計算した数字をテーブルに保存したい。
Access(アクセス)
-
16
アクセスVBAのMe!と[ ]
Access(アクセス)
-
17
ACCESS フォームで入力データを残したいです。
その他(Microsoft Office)
-
18
クエリで出来た表にチェックボックスを追加する
その他(Microsoft Office)
-
19
テキストボックスに入力した値を、次に入れ替えるまで保持させたいのですが、どのような方法があるでしょう
Access(アクセス)
-
20
前のレコードの値を自動で入れたい
PowerPoint(パワーポイント)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSで入力フォームをHTMLフ...
-
Accessのフォーム上にレコード...
-
選択したチェックボックスのみ...
-
ACCESSのフォームからデータの...
-
accessの自動更新処理をできな...
-
アクセス 0以外をカウントす...
-
アクセスのフォームのビューが...
-
アクセスでテーブルの変更内容...
-
Access2002 フォームを閉じるた...
-
Access2007 フォーム上データの...
-
access2007でhtmlをフォームの...
-
Access:yesの時は画像を表示、...
-
Accessが不良です
-
ACCESS(アクセス):一度の入力で...
-
テキストボックスの値をテーブ...
-
Accessフォームのテキストボッ...
-
ACCESSで議事録を作りたいので...
-
Access 1つのイベントに複数...
-
Access 別フォームへの再クエ...
-
Access フォーム上でコンボボッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスのフォームのビューが...
-
ACCESSのフォームからデータの...
-
Accessのフォーム上にレコード...
-
選択したチェックボックスのみ...
-
accessの自動更新処理をできな...
-
ACCESSで入力フォームをHTMLフ...
-
アクセスでの項目追加について...
-
Access 別フォームへの再クエ...
-
アクセスでテーブルの変更内容...
-
Accessのフォームで作業領域を...
-
「メソッドまたはデータメンバ...
-
Access2002 フォームを閉じるた...
-
アクセス 0以外をカウントす...
-
Access フォーム上でコンボボッ...
-
Accessフォームのテキストボッ...
-
帳票フォームに全レコードを表...
-
テキストボックス(アクセス)内...
-
入力途中の入力した値をすべて...
-
Accessのフォームに表示...
-
ACCESSでのテキストボックスの...
おすすめ情報