アプリ版:「スタンプのみでお礼する」機能のリリースについて

教えてください。
フォーム内にあるボタンに以下のイベントプロシージャーが入っています。

このボタンで行いたいことは、
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へのデータもどんどん上書きされてしまいます。

意味通じましたでしょうか?
よろしくお願いいたします。

A 回答 (2件)

はじめまして。



ts.MoveLastのところを、
ts.Addnewにして、
txtFileNo = "PS-" & Format(ts!No + 1, "0000000")
の後に、ts.Update
を追加してみてください。

自信はありませんが^^;

この回答への補足

ごめんなさい。別にプログラムミス発見。リストに表示できていました。ありがとうございました!

補足日時:2004/05/27 15:43
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
番号は加算されるのですが、ときどき2加算されたり、またabcdeへのデータも画面を開いたとき最初に入力したものだけでした。
参考にして、修正してみたいと思います。

お礼日時:2004/05/26 19:15

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は不要のようです。

この回答への補足

ごめんなさい。別プログラムにミスがありました。
これで完璧です。ありがとうございました!

補足日時:2004/05/27 15:44
    • good
    • 0
この回答へのお礼

いろいろテストしていただいたようで、ありがとうございました。
番号は加算されるのですが、リストにどうしても追加されず、もう少し頑張ってみます。

お礼日時:2004/05/27 15:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!