こんにちはBOLTSです。
今日は皆様のお知恵を拝借したくて書かせて頂きました。

現在ACCESS2000を使用しています。テキストファイルにデータをエクスポートしたのですが、エクスポートした件数をカウントしたいのです。

例えばエクスポートすべきデータを予めカウントしておいて変数Aに入れておきます。次にデータをエクスポートして
エクスポートできた件数を変数Bに入れます。
この変数Aと変数Bを比較して=であればエクスポート完了のメッセージを表示したいのです。

まあ要はエクスポートが確実に完了したかどうかの確認が欲しいわけです。
何かいい知恵ありませんでしょうか?
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

こんにちは。

maruru01です。
いくつかありますが。

1.エクスポートするコードの直前にOn Error GoToステートメントをおいて、分岐先でエラー件数をカウントする。(エクスポート失敗のエラーナンバーがわかればなおいいです。)

2.エクスポート後に、テキストファイルの存在チェックをして、なければエラー件数としてカウントする。ファイルの存在確認は、InputモードでOpenして、エラーが出なければOKというやり方がいいと思います。

どちらもループ内で行い、1つでもエラーが出たら、未完了ということになります。
では。
    • good
    • 0
この回答へのお礼

Input関数ですね。あ~なるほど。
データ件数が増えると時間かかるのかな~?
まあいいやとりあえず作って動かしてみます。
ありがとうございます。

お礼日時:2002/02/12 09:26

かなり強引な案ですが、エクスポートしたデータをリンクテーブルとし、


Select Count(*) as 件数 from リンクテーブル
でカウントを取るという案はどうでしょうか?

私の場合、EXCELにエクスポートしたデータの列がずれていた経験があるので
完璧を思うのであれば、主要データの合計をとってもいいかもしれませんね。
    • good
    • 0
この回答へのお礼

な~るほどそんな裏技もあるんですね~。
ありがとうございます。

お礼日時:2002/02/07 08:49

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccess 抽出データ件数のカウント更新について

以下の2つのテーブルを用いて
販売した数を更新したいのですが、
どの様に作成すれば
良いのでしょうか?
クエリーテーブルに結果を出力は出来たのですが、
クエリーテーブルではなく、BUSYO_MSTのM_F_countに
カウント結果を出すには、どこを直せばいいでしょうか。

UPDATE BUSYO_MST
SET M_F_count=(
SELECT Count(M_File.key) AS M_F_count
FROM BUSYO_MST LEFT JOIN M_File ON BUSYO_MST.Key = M_File.key
GROUP BY BUSYO_MST.Key);

=========================
<< BUSYO_MST >>

ID | key | M_F_count
---+--------------
01 | バナナ | 0
02 | りんご | 2
03 | みかん | 1


<< M_File >>

ID | key
---+--------------
01 | りんご
02 | みかん
03 | りんご

以下の2つのテーブルを用いて
販売した数を更新したいのですが、
どの様に作成すれば
良いのでしょうか?
クエリーテーブルに結果を出力は出来たのですが、
クエリーテーブルではなく、BUSYO_MSTのM_F_countに
カウント結果を出すには、どこを直せばいいでしょうか。

UPDATE BUSYO_MST
SET M_F_count=(
SELECT Count(M_File.key) AS M_F_count
FROM BUSYO_MST LEFT JOIN M_File ON BUSYO_MST.Key = M_File.key
GROUP BY BUSYO_MST.Key);

=========================
<< BUSYO_MST >>

ID | key | M_F_count...続きを読む

Aベストアンサー

更新クエリにサブクエリを含むとエラーが生じます。

更新可能なクエリであることが必要
http://support.microsoft.com/default.aspx?scid=kb;ja;328828
の以下の部分。
フィールドの値の合計、平均、カウント、その他の集計値を計算するクエリでは、データを更新で

きません。また、クロス集計クエリ、選択クエリ、集計値や集計関数を含むサブクエリから、[レコ

ードの更新] 行にあるフィールドを参照する更新クエリではデータを更新できません。この問題を

回避するには、更新クエリの [レコードの更新] 行で [定義域集計関数] を使用します。これで、

クロス集計クエリ、選択クエリ、集計値や集計関数を含むサブクエリから、フィールドを参照でき

るようになります。

したがって、個別に定義域集計関数を使用するか、
あるいは、コードでテーブルを一括更新するように
します。


【一括更新の場合】

質問のクエリのサブクエリを少し変更して、

Q集計

SELECT M_File.key, Count(M_File.key) AS M_F_count
FROM M_File
GROUP BY M_File.key;

というクエリQ集計を作成します。
以下を標準モジュールに貼り付け、
イミディエイトウィンドウでtest
を実行してみてください。
なお、DAOを使用しているので
コード表の参照設定で、
Microsoft DAO xx Object Library
のチェックを確認してください。



Sub test()
Dim db As Database
Dim rst As Recordset
Dim rsq As Recordset

Set db = CurrentDb
Set rsq = db.OpenRecordset("Q集計", dbOpenDynaset)
Set rst = db.OpenRecordset("BUSYO_MST", dbOpenDynaset)

If rsq.RecordCount > 0 Then
rsq.MoveFirst
Do Until rsq.EOF
rst.MoveFirst
Do Until rst.EOF
If rsq!Key = rst!Key Then
rst.Edit
rst!M_F_count = rsq!M_F_count
rst.Update
Exit Do
End If
rst.MoveNext
Loop
rsq.MoveNext
Loop
End If
rst.Close: Set rst = Nothing
rsq.Close: Set rsq = Nothing
db.Close: Set db = Nothing
End Sub


また、このプロシージャを適当な名前に
して、フォームなりのボタンクリックで

Pribate Sub ボタン1_Click()
Call test
End Sub

とすることもできます。

更新クエリにサブクエリを含むとエラーが生じます。

更新可能なクエリであることが必要
http://support.microsoft.com/default.aspx?scid=kb;ja;328828
の以下の部分。
フィールドの値の合計、平均、カウント、その他の集計値を計算するクエリでは、データを更新で

きません。また、クロス集計クエリ、選択クエリ、集計値や集計関数を含むサブクエリから、[レコ

ードの更新] 行にあるフィールドを参照する更新クエリではデータを更新できません。この問題を

回避するには、更新クエリの [レコードの更新] 行で...続きを読む

QNull値件数をカウントする式について

あるテーブル(UserLog)から、「LogOffTime」フィールドの値が空欄(Null)のデータを探す式ですが、

Access_97で・・・
DCount("*", "UserLog", "[LogoffTime] = Null")

・・・としていたのを、Access2000にしたら上手く動きません。
アレコレ試行錯誤して・・・

DCount("[UL_Id]", "[UserLog]", "[LogoffTime] is Null")

・・・だと上手く行くのですが、資料類を見ても「=」が使えるハズなんですけど、なぜダメなんでしょう?

Aベストアンサー

Accessは2種類の空白の値を使って区別します。空白値にはNull値(データが存在しないこと、またはデータが不定であることを示すために使用する値。)と
長さ0の文字列(文字を1つも含まない文字列。意図的にフィールドに値がないようにしていることを示すことができる。)がありますよね。
=Nullや<>Nullのようなこの状況ではTrue(真)と評価される式でもFalse(偽)になります。
Null値を含む式はすべて式自体がNull値となりFalse(偽)と評価されるためです。
2000以降はIsNull関数でNull値を厳密に?判定しているのでNullの判定はIsNull関数でやらなければだめであるという事だと思いますが。

QORACLEでの件数カウント方法

素人なので教えてください。sqlplusでレコード件数をカウントしたいのですが、チョット特殊なカウント方法なのです。やりたいことは、一回のSQL文で複数カラムのレコード件数をカウントしたいのですが可能でしょうか?
例)
a_cdの件数カウントの場合は、
select a_cd,count(*) from abc group by a_cd;

b_cdの件数カウントの場合は、
select b_cd,count(*) from abc group by b_cd;
これを一回のSQLで、
a_cdとb_cdの件数をカウント出来ますか?

Aベストアンサー

おつかれさまです。

情報が少ないので間違っているかも知れませんが
UNIONをつかってみては?

select a_cd cd,count(*) counts from abc group by a_cd
UNION
select b_cd cd,count(*) counts from abc group by b_cd

Qアクセスで任意の件数を抽出するクエリでお知恵をお貸し下さい!

アクセス初心者です。
Win XP
Access2002
フォーム上にあるテキストボックスに任意の数値を入力しておき、入力した任意の数分のレコードを抽出してくるクエリを組みたいのですが、知恵が不足して出来ません。
SQLでselect top [Forms]![フォーム名]![テキストボックス名] など試してみたのですがダメでした。
どなたかお知恵をお貸し下さい。
できれば、SQL分でやるよりクエリの抽出条件の式でできればとも思っております。
宜しくお願いします。

Aベストアンサー

TOP値も試してみたということは何かの順番に取り出せばいいのですね

クエリで順位を求めるフィールドを作りそこの抽出条件に
パラメータで取り出し数を与えるようにすればいいいのでは

順位:DCount("*","テーブル名","フィールド名<" & [フィールド名]) + 1

抽出条件
<=Forms!フォーム名!条件テキストボックス名

Qテーブルデータのエクスポートについて

質問です。

VBAで、Access2003をSQL,DAOで操作しようとしています。

a.mdbのテーブルデータを、b.mdbのテーブルにエクスポートしたいのですが、やり方がわからず困っています。

ちなみに私はVBA未経験で、1週間前からVBAを使っています。
すみませんが、データを含めてエクスポートする方法を教えてください。

Aベストアンサー

必要な事
何と言うテーブルをエクスポートするか。
エクスポート先(b.mdb)のフルパス。
エクスポート先でのテーブル名(同じでもいいし変えることもできる)。
例)
テーブル1を"c:\b.mdb"の"テーブル2"と言う名前のテーブルにエクスポートする場合。
Sub sample()
DoCmd.TransferDatabase acExport, "Microsoft Access", "c:\b.mdb", acTable, "テーブル1", "テーブル2"
End Sub

もしも既にb.mdbにテーブル2がある場合は上書きされて消えてしまう。


人気Q&Aランキング

おすすめ情報