抽出後のデータ移動

解決


えいりあん  2003-10-22 09:52:24  No: 109316  IP: [192.*.*.*]

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 11:52:58  No: 109317  IP: [192.*.*.*]

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

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

編集 削除
えいりあん  2003-10-22 12:01:31  No: 109318  IP: [192.*.*.*]

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

編集 削除
z  2003-10-22 12:34:07  No: 109319  IP: [192.*.*.*]

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

編集 削除
ファン太  2003-10-22 12:40:49  No: 109320  IP: [192.*.*.*]

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

編集 削除
えいりあん  2003-10-22 13:39:13  No: 109321  IP: [192.*.*.*]

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-22 15:51:12  No: 109322  IP: [192.*.*.*]

すみません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-22 16:28:38  No: 109323  IP: [192.*.*.*]

ありがとうございます

編集 削除