抽出後のデータ移動

解決


えいりあん  2003-10-22 18:52:24  No: 109316

ACCESSからデータを抽出してテキストに表示させて次のレコードに進もうとしたら
カレントレコードがありませんとなります。
100件中50件目を抽出したとして次ボタンを押すと51件目〜に進みたいのですが
無理なんでしょうか?

Private Sub Command8_Click()
    Table.MoveNext
    Text1 = Table(0)
    Text2 = Table(1)
    Text3 = Table(2)
    Text4 = Table(3)
END Sub


ファン太  2003-10-22 20:52:58  No: 109317

漠然としすぎてアドバイスしづらいのですが、要はレコード数が1ページ当りの表示より少ない場合の処理の事でしょうか?

乱暴なやり方ですが、ページング処理の頭でテキストを全部クリアしておいて、テキストに転送する前にレコードがEOFか?を検出し  (IF Rs.EOF = True 等)
レコードが無いなら処理を中断すればよいのではないでしょうか。


えいりあん  2003-10-22 21:01:31  No: 109318

抽出して表示させたので全100件あるのに抽出した件数しかみてくれないよう
なんです。
よって抽出した件数が2件ならば次のレコードは1件しかないんです
抽出したレコードが50件目ならば次は51件目〜を表示させたいのですが


z  2003-10-22 21:34:07  No: 109319

SQL文を使ってレコードセットに抽出されているのであれば
必要な時に再度SQL文を実行して内容を更新しないと駄目でしょう。


ファン太  2003-10-22 21:40:49  No: 109320

抽出が終了した時点でレコードポインタがEOF付近を指してるんじゃないでしょうか?、お使いのインターフェイスが何か分かりませんので正しいかどうか分かりませんけど。
前ページの最後に抽出したレコードの次にレコードポインタを移動させてから再度次ページ分の抽出をしてみてはどうでしょうか?。


えいりあん  2003-10-22 22:39:13  No: 109321

Sarchi = "select * From 送付先マスタ Where 会社名 ='" & Text15 & "' OR 漢字氏名 ='" & Text16 & "'"

Set Table = db.OpenRecordset(Sarchi, dbOpenDynaset)
Text1 = Table(0)
Text2 = Table(1)
Text3 = Table(2)
Text4 = Table(3)

Private Sub Command8_Click()  ’次へボタン
    Table.MoveNext
    Text1 = Table(0)
    Text2 = Table(1)
    Text3 = Table(2)
    Text4 = Table(3)
END Sub
こんな感じなんですがポインタというのはどこにつければよいのでしょうか


ファン太  2003-10-23 00:51:12  No: 109322

すみませんSQLは分からないんです(^^;
予測ですけど、最初の処理で条件に当てはまる全てのレコードはすでに抽出されているって事ですよね?(Tableには抽出レコードが全部入ってるんでしょ?)
以下のように変更すると上手くいくような気が・・・
(ちなみにコンパイルチェックしてないので綴りミスはカンベソ)

'プロシージャーの外で静的変数を用意しましょう
Private RecOfs as Long 
'抽出処理するとこに

RecOfs= 0 'を追加

Private Sub Command8_Click()  ’次へボタン
    ' Table.MoveNext
    ON ERROR GOTO NoRec  '乱暴ですが・・・
 
    Text1 = Table(0 + RecOfs)
    Text2 = Table(1 + RecOfs)
    Text3 = Table(2 + RecOfs)
    Text4 = Table(3 + RecOfs)
    RecOfs = RecOfs + 4 '1ページに表示するレコード分足す

    ON ERROR GOTO 0
    EXIT SUB

NoRec:
    ON ERROR GOTO 0
    MsgBox "以上です",VbOkOnly

END Sub


えいりあん  2003-10-23 01:28:38  No: 109323

ありがとうございます


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加