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文が間違っているのでしょうか。
'どうかご助言をお願いいたします。
>'SQL文が間違っているのでしょうか。
それが分からないのであれば Access 側で SQL 文を実行してみれば
いいでしょ?。例えば
"SELECT * FROM tblPay WHERE tblPay.Day = '" & Format(Date, "yyyymmdd") & "'"
でテーブルが取れてきているか?とか。
確認しておきたいのはテーブルのデータ型ですね。この SQL 文だと
tblPay.Day は yyyymmdd 形式の文字列でないといけません。
あとは ChitNo が数値型であればテーブルは取れてきてるでしょう。
…で、intMAX_Chit ってただの Integer 型のローカル変数ですか?
どこでレコードセットからの値が代入されてるの?。
根本的にプログラムとして足りてないので何とも言えません。
え〜っと、
超初歩的(案)ですが、
ソートしてから、MoveLastじゃ面白くありませんか?
ご返答ありがとうございます。
すみません。
別の方法で解決してしまいました。
ORDER BY tblPay.ChitNo DESC
でとってくればよかったのですね。
ただ、データ型はYYYYMMDDになっていなかったので、
助かりました。
ありがとうございました。
すみません。。。
ご返答いただいたの、一人かと思いました。更新してなかったので。
kiyoさまご返答ありがとうございました。