伝票番号の最大値取得

解決


mm  2004-05-17 16:00:10  No: 113296  IP: [192.*.*.*]

VB6.0で、データベースはACCESSを使用しています。

    '伝票番号を作成するために、現在ある伝票番号の最大値を取得したいです。
    'tblPayの中のChitNo(伝票番号)の最大値を求めたいのです。
    '日付単位で伝票を一から発行しなおすため、WHERE句に日付を入れています。
    
    strSql = "SELECT Max(ChitNo) As intMAX_Chit FROM tblPay WHERE tblPay.Day = '" & Format(Date, "yyyymmdd") & "'"

    Call gGetMemberInfo(strSql, mRs)    'データベースオープン関数を呼ぶ

    lblChitNo.Caption = Format(intMAX_Chit, "000000")
    
    '表示されるものはデータがあるにも係わらず000000です。
    'SQL文が間違っているのでしょうか。
    'どうかご助言をお願いいたします。

編集 削除
特攻隊長まるるう  2004-05-17 17:29:39  No: 113297  IP: [192.*.*.*]

>'SQL文が間違っているのでしょうか。
それが分からないのであれば Access 側で SQL 文を実行してみれば
いいでしょ?。例えば
 "SELECT * FROM tblPay WHERE tblPay.Day = '" & Format(Date, "yyyymmdd") & "'"
でテーブルが取れてきているか?とか。

確認しておきたいのはテーブルのデータ型ですね。この SQL 文だと
tblPay.Day は yyyymmdd 形式の文字列でないといけません。
あとは ChitNo が数値型であればテーブルは取れてきてるでしょう。

…で、intMAX_Chit ってただの Integer 型のローカル変数ですか?
どこでレコードセットからの値が代入されてるの?。
根本的にプログラムとして足りてないので何とも言えません。

編集 削除
kiyo  2004-05-17 17:39:57  No: 113298  IP: [192.*.*.*]

え〜っと、
超初歩的(案)ですが、
ソートしてから、MoveLastじゃ面白くありませんか?

編集 削除
mm  2004-05-17 18:06:56  No: 113299  IP: [192.*.*.*]

ご返答ありがとうございます。
すみません。
別の方法で解決してしまいました。
ORDER BY tblPay.ChitNo DESC
でとってくればよかったのですね。
ただ、データ型はYYYYMMDDになっていなかったので、
助かりました。
ありがとうございました。

編集 削除
mm  2004-05-17 18:24:38  No: 113300  IP: [192.*.*.*]

すみません。。。
ご返答いただいたの、一人かと思いました。更新してなかったので。
kiyoさまご返答ありがとうございました。

編集 削除