教えてください。
フォーム内にあるボタンに以下のイベントプロシージャーが入っています。
このボタンで行いたいことは、
1.フォーム内に「入力したデータ」に新しい「番号」(PS-0000001から始まり、1ずつ増える)をつけ、
2.abcdeのテーブルに、「入力したデータ」と「番号」を書き込む
========イベント=======
Dim DB As Database
Dim ts As DAO.Recordset
Set DB = CurrentDb()
Set ts = DB.OpenRecordset("T_abcde", dbOpenDynaset)
If ts.EOF Then
txtFileNo = "PS-0000001"
Else
ts.MoveLast
txtFileNo = "PS-" & Format(ts!No + 1, "0000000")
End If
ts.Close
DB.Close
===イベントここまで===
フォームにデータを入れて2回まではうまくできるのですが、3回目以降は番号は更新されずabcdeへのデータもどんどん上書きされてしまいます。
意味通じましたでしょうか?
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
はじめまして。
ts.MoveLastのところを、
ts.Addnewにして、
txtFileNo = "PS-" & Format(ts!No + 1, "0000000")
の後に、ts.Update
を追加してみてください。
自信はありませんが^^;
早速の回答ありがとうございます。
番号は加算されるのですが、ときどき2加算されたり、またabcdeへのデータも画面を開いたとき最初に入力したものだけでした。
参考にして、修正してみたいと思います。
No.2
- 回答日時:
Private Sub コマンド0_Click()
Dim db As DAO.Database
Dim ts As DAO.Recordset
Set db = CurrentDb()
Set ts = db.OpenRecordset("名簿1", dbOpenDynaset)
ts.MoveFirst
n = ts!番号
MsgBox n
p01:
ts.MoveNext
If ts.EOF Then
m = Mid(n, 4, 7)
MsgBox m
ts.AddNew
ts!番号 = "PS-" & Format(Val(m) + 1, "0000000")
MsgBox ts!番号
ts.Update
GoTo p02
Else
n = ts!番号
MsgBox n
GoTo p01
End If
'-----
p02:
ts.Close
db.Close
End Sub
-----------
試行錯誤したのでMsgBoxが入っていますが省いてください。
AddNew,Updateが要るのではないですか。それに番号をテキスト型にしたので、+1するにはVal()が必要でしょう。2002でテスト済み。
AddNewのあとはts.Editは不要のようです。
いろいろテストしていただいたようで、ありがとうございました。
番号は加算されるのですが、リストにどうしても追加されず、もう少し頑張ってみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
81・・・・・から始まる電話...
-
三井住友銀行のVpassをやってい...
-
体育の時の4列横隊ってどーやっ...
-
電話をかけるのに、違う番号を...
-
至急お願いいたします! ゆう...
-
固定電話着信履歴 181 ・・・・...
-
同じ商品なのに、JANコード...
-
携帯番号変える時は、それなり...
-
内線番号一覧が分かりづらい
-
すべて「ひとつ・・・」ではじ...
-
フリーダイヤルのけた数
-
FAX番号の英語表記とは?
-
電話番号 +817673467911という...
-
P/Nとは?
-
66から始まる番号
-
不気味な番号
-
アップルギフトカードについて...
-
国際電話番号の前の+(プラス...
-
オレンジカードの裏に書いてあ...
-
Access DLookup vbaで条件を2件...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
81・・・・・から始まる電話...
-
携帯番号変える時は、それなり...
-
電話をかけるのに、違う番号を...
-
至急お願いいたします! ゆう...
-
固定電話着信履歴 181 ・・・・...
-
電話番号 +817673467911という...
-
同じ商品なのに、JANコード...
-
P/Nとは?
-
フリーダイヤルのけた数
-
すべて「ひとつ・・・」ではじ...
-
銀行で番号札は?
-
くら寿司の自動受付で整理番号...
-
FAX番号の英語表記とは?
-
NHK放送受信契約 お客様番号を...
-
e-Tax 利用者識別番号の二重取得
-
不気味な番号
-
0120613184は、どこの番号です...
-
卸売サイトで必要な番号が何番...
-
MS Wordで図表番号を1から振り...
-
1から5までの番号が1つずつ書か...
おすすめ情報