過去ログ

                                Page     609
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼クエリ情報からテーブルにデータを出力するやり方について  隠れ肥満22 04/4/28(水) 20:48
   ┣Re:クエリ情報からテーブルにデータを出力するやり方について  Gin_II 04/4/28(水) 22:32
   ┃  ┗Re:クエリ情報からテーブルにデータを出力するやり方について  隠れ肥満22 04/4/29(木) 7:09
   ┃     ┗Re:クエリ情報からテーブルにデータを出力するやり方について  Gin_II 04/4/29(木) 16:28
   ┃        ┣Re:クエリ情報からテーブルにデータを出力するやり方について  かみちゃん 04/4/29(木) 18:03
   ┃        ┗Re:クエリ情報からテーブルにデータを出力するやり方について  隠れ肥満22 04/4/30(金) 12:25
   ┗Re:クエリ情報からテーブルにデータを出力するやり方について  かみちゃん 04/4/28(水) 22:36

 ───────────────────────────────────────
 ■題名 : クエリ情報からテーブルにデータを出力するやり方について
 ■名前 : 隠れ肥満22
 ■日付 : 04/4/28(水) 20:48
 -------------------------------------------------------------------------
   すいません教えてください。いろいろ試しましたが
うまくいかず、アドバイスをお願いしようと
下記に全て記述してしまいました。
単純にINデータをOUTデータに落としたいだけなのですが・・・

Q売上明細:クエリ情報 IN→キーはありません。 情報件数135件
T売上明細加工編集ファイル:テーブル情報 OUT キー指定はありません。

[現象]
Access指定(!?)のMSGBOXに「オーバーフローしました。」と出力表示され、
me.txt件数 には 32,767 と 表示されます。

何卒宜しくお願い致します。

----------------------------------------------------------------------------------

Private Sub cmd実行_Click()
On Error GoTo Err_cmd実行_Click
  Dim db As ADODB.Connection
  Dim UR_IN As ADODB.Recordset
  Dim UR_OUT As ADODB.Recordset
  Dim i as Integer
  Set db = CurrentProject.Connection
  '先にOUTファイルを全て削除します。    
  Set UR_OUT = New ADODB.Recordset
  UR_OUT.Open "T売上明細加工編集ファイル",db , adOpenKeyset, adLockOptimistic
  'テーブルを削除する
  Do Until UR_OUT.EOF = True
    UR_OUT.Delete
    UR_OUT.MoveNext
  Loop
 
'INファイルの粗利額を編集し小さいファイル(OUT)に落としたいです。
  Set UR_IN = New ADODB.Recordset
  UR_IN.Open "Q売上明細",db ,adOpenKeyset,  LockOptimistic
  'テーブル作成
  Do Until UR_IN.EOF = True
    UR_OUT.AddNew
      UR_OUT!売上日 = UR_IN!売上日
       UR_OUT!売上金額 = UR_IN!売上金額
      UR_OUT!売上粗利額 = UR_IN!売上粗利額 * 1.3
    UR_OUT.Update
    UR_OUT.MoveNext
    i = i + 1
  Loop
  me.txt件数 = i
  UR_OUT.Close: Set UR_OUT = Nothing
  UR_IN.Close: Set UR_IN = Nothing
  UR_DB.Close: Set UR_DB = Nothing
Exit_cmd実行_Click:
  Exit Sub

Err_cmd実行_Click:
  MsgBox Err.Description
End Sub

見ずらくてすみません。

 ───────────────────────────────────────  ■題名 : Re:クエリ情報からテーブルにデータを出力するやり方について  ■名前 : Gin_II  ■日付 : 04/4/28(水) 22:32  -------------------------------------------------------------------------
   >[現象]
>Access指定(!?)のMSGBOXに「オーバーフローしました。」と出力表示され、
>me.txt件数 には 32,767 と 表示されます。

でしたら、

>  Dim i as Integer
  Dim i As Long

に変更してみてください。
理由は、Integer の部分にカーソルを置いた状態で、F1 キーを押し、
ヘルプで確認してください。

 ───────────────────────────────────────  ■題名 : Re:クエリ情報からテーブルにデータを出力するやり方について  ■名前 : 隠れ肥満22  ■日付 : 04/4/29(木) 7:09  -------------------------------------------------------------------------
   Gin_II さん様、かみちゃん様
>>[現象]
>>Access指定(!?)のMSGBOXに「オーバーフローしました。」と出力表示され、
>>me.txt件数 には 32,767 と 表示されます。
>
>でしたら、
>
>>  Dim i as Integer
>  Dim i As Long
>
>に変更してみてください。
>理由は、Integer の部分にカーソルを置いた状態で、F1 キーを押し、
>ヘルプで確認してください。

すいません質問の意味がズレてしまいました。
私の表現が悪かったです。ごめんなさい。
「Dim i as Integer」を「Dim i As Long」にすれば
良いのではなく、入力件数が135件なので出力件数も135件にしたい
わけです。32767件になることに問題があるわけなんです。
なんでだろう・・・

何卒、今一度、検証して頂けないでしょうか?

 ───────────────────────────────────────  ■題名 : Re:クエリ情報からテーブルにデータを出力するやり方について  ■名前 : Gin_II  ■日付 : 04/4/29(木) 16:28  -------------------------------------------------------------------------
   >   Do Until UR_IN.EOF = True
>     UR_OUT.AddNew
>       UR_OUT!売上日 = UR_IN!売上日
>        UR_OUT!売上金額 = UR_IN!売上金額
>       UR_OUT!売上粗利額 = UR_IN!売上粗利額 * 1.3
>     UR_OUT.Update
>     UR_OUT.MoveNext
>     i = i + 1
>   Loop

UR_OUT.MoveNext
が、不要かと。

 ───────────────────────────────────────  ■題名 : Re:クエリ情報からテーブルにデータを出力するやり方について  ■名前 : かみちゃん  ■日付 : 04/4/29(木) 18:03  -------------------------------------------------------------------------
   こんにちは。かみちゃん です。

>UR_OUT.MoveNext
>が、不要かと。

そのかわり、
UR_IN.MoveNext
が必要かと思います。
このままだと、同じレコードが保存されるのではないでしょうか?
そもそも、「単純にINデータをOUTデータに落としたいだけ」
なら、追加クエリ作成して実行すればいいのではないかとも思いま
すが・・・
クエリを作成したくなければ、SQL文をVBAから実行すればいいので
はないかとも思います。
OUTファイルを全て削除する部分も同じくです。

 ───────────────────────────────────────  ■題名 : Re:クエリ情報からテーブルにデータを出力するやり方について  ■名前 : 隠れ肥満22  ■日付 : 04/4/30(金) 12:25  -------------------------------------------------------------------------
   ▼Gin_II さん:
>>   Do Until UR_IN.EOF = True
>>     UR_OUT.AddNew
>>       UR_OUT!売上日 = UR_IN!売上日
>>        UR_OUT!売上金額 = UR_IN!売上金額
>>       UR_OUT!売上粗利額 = UR_IN!売上粗利額 * 1.3
>>     UR_OUT.Update
>>     UR_OUT.MoveNext
>>     i = i + 1
>>   Loop
>
>UR_OUT.MoveNext
>が、不要かと。

なるほど!
UR_IN.MoveNext
が、必要でした!
ありがとうございました!

 ───────────────────────────────────────  ■題名 : Re:クエリ情報からテーブルにデータを出力するやり方について  ■名前 : かみちゃん  ■日付 : 04/4/28(水) 22:36  -------------------------------------------------------------------------
   こんにちは。かみちゃん です。

>Q売上明細:クエリ情報 IN→キーはありません。 情報件数135件
>T売上明細加工編集ファイル:テーブル情報 OUT キー指定はありません。

想定される最大件数が何レコードになるのかがわかりませんが、

>  Dim i As Integer

では、32767レコードまでしか処理できないと思います。
これは、「整数型 (Integer) の変数は、16 ビット (2 バイト) の変数で、-32,768 〜 32,767 の範囲の値をとります」だからです。
そこで、
Dim i As Long
とすれば、いいのではないでしょうか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 609