Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


486 / 500 ページ ←次へ | 前へ→

【3429】リストボックスの値取得
質問  saikoro  - 04/9/7(火) 8:51 -

引用なし
パスワード
   リストボックスに列が3で、行は増やしていく(データを増やすと増えるので)というqryを
表示させています。

このリストボックスに表示されているデータを一つづつ、格納して、
値を取って置きたいのですが、その仕方がわかりません。

qryTabemono

番号    種類    名称
1    果物    バナナ
2    果物    ぶどう
3    野菜    白菜
4    野菜    キャベツ


以下10個位までデータがあれば、データを保存しておきたいのですが、
どのようにすればよろしいですか?

こうすれば最後の行だけは、とれるのですが。。。
あたりまえですが・・・

Dim Bangou as Integer
Dim Syurui as String
Dim Meisyou as String

Dim db As DAO.Database
Dim qry As DAO.Recordset
  
'DBセット
Set db = CurrentDb
Set qry = db.OpenRecordset("qryTabemono", dbOpenDynaset)
  
If qry.EOF = True Then
  MsgBox ("データがありません")
  Exit Sub
End If
  
Do While qry.EOF = False
    
  Bangou = qry.Fields(0) '番号
  Syurui = qry.Fields(1) '種類
  Meisyou = qry.Fields(2) '名称

  qry.MoveNext
    
Loop

全データを格納しておきたいのですが、
どのようにすればよろしいですか?
初歩的ですが、よろしくおねがいします。
・ツリー全体表示

【3428】Re:レポートでグループ毎にページを表示
回答  Gin_II  - 04/9/7(火) 0:32 -

引用なし
パスワード
   >Dim DB As Database
>      ↓
>Dim DB As DAO.Database
>
>とすることは分かったのですが、その後も「型が一致しません」
>というエラーが続いて出来ずにいます。

> Dim GrpPages As Recordset
ここも
Dim GrpPages As DAO.Recordset
にしてください。
・ツリー全体表示

【3427】Re:レポートを動的に作成する方法
回答  Gin_II  - 04/9/7(火) 0:30 -

引用なし
パスワード
   >数個の組み合わせというのであれば,おっしゃられている通りなのですが・・
>組み合わせが少し多いもので・・

私なら。。
いくつかの様式だけレポートで準備しておいて、あとは、フィールドを選択させ、
Excelへエクスポート。

ご自由にどうぞって。。(^^ゞ
・ツリー全体表示

【3426】Re:レポートを動的に作成する方法
回答  hatena  - 04/9/7(火) 0:21 -

引用なし
パスワード
   >できれば,その場でレポートを作成して,
>印刷後は削除できればと考えています。

文字通りのことをするには、
CreateReport メソッド、CreateReportControl メソッドを使えば
できそうです。自分はやったとこはないのですが。

私がするなら、レコードソースだけを設定した空白のレポートを
作成しておいて、セクションのフォーマット時イベントで、
Printメソッド、Lineメソッドなどでデータや罫線を描画するように
するかな。
・ツリー全体表示

【3425】Re:レポートを動的に作成する方法
お礼  [名前なし]  - 04/9/6(月) 20:25 -

引用なし
パスワード
   ありがとうございます。
やってみます。
本当にありがとうございました。
・ツリー全体表示

【3424】レポートでグループ毎にページを表示
質問  低血圧  - 04/9/6(月) 19:27 -

引用なし
パスワード
   はじめまして、いつも皆様の投稿で助けられております。

今回、どうしても手におえないのでご教授願います。

レポートでグループ毎に「1/5ページ」のように表示したいです。

総ページ数10枚として2グループなら
1/5、2/5、3/5、4/5、5/5、1/5、2/5、3/5、4/5、5/5 のように・・・。

マイクロソフトのページで以下のものを見つけ、試して見ました。

[AC97]レポートでグループ毎にPage/Pages形式のページ番号をつける方法
http://support.microsoft.com/default.aspx?scid=kb;ja;407754&Product=accJPN

フィールド名以外はコピー&ペーストで作りました。
また、私のVERは2000なので

Dim DB As Database
      ↓
Dim DB As DAO.Database

とすることは分かったのですが、その後も「型が一致しません」
というエラーが続いて出来ずにいます。
具体的には

Set GrpPages = DB.OpenRecordset("グループ別ページ", dbOpenTable)

の行で出てしまいます。cobolやpl/1を昔やっていた者で、VBAはみようみまねです。

どうかよろしくお願い致します。
・ツリー全体表示

【3423】Re:レポートを動的に作成する方法
回答  こもれび  - 04/9/6(月) 18:54 -

引用なし
パスワード
   こもれびです

0 レポートは印刷する用紙の幅を考慮した上で、印刷できる最大数のコントロール
  を「仮配置」しておく
1 レポートと連結する「テンポラリテーブル」を用意する
2 フォームでは印刷するフィールドを選択するチェックボックス等を配置する
3 印刷を準備するプロシージャでは選択されたフィールドのデータをテンポラリ
  テーブルに書き込む。
  また、docmd openreportにて、prtargsを用いてどのフィールドを印刷するか
  を示すフラグデータをレポートに伝える。
4 レポートの「Report_Open」プロシージャにて、伝えられたprtargsのフラグ
  を元に仮配置した各コントロールの位置決めを行う。
  印刷不要なコントロールは Visible = Falseとする

こんなところでいかがでしょうか。
・ツリー全体表示

【3422】Re:レポートを動的に作成する方法
質問  たけし  - 04/9/6(月) 17:14 -

引用なし
パスワード
   返答ありがとうございます。

会社名は一緒なんですが,所属が違ったりしているため,グループをつけて
レポートしたいと思っています。
そしてそのグループも可変にしたいと思っています。

数個の組み合わせというのであれば,おっしゃられている通りなのですが・・
組み合わせが少し多いもので・・
できれば,その場でレポートを作成して,
印刷後は削除できればと考えています。

他に良い方法がありましたら,御指導お願いします。
・ツリー全体表示

【3421】Re:レポートを動的に作成する方法
回答  こもれび  - 04/9/6(月) 16:54 -

引用なし
パスワード
   こもれびです

どの位選択されるのかはわかりませんが、選択されるフィールドを幾つか設定しておいて
レポートを使い分けるようにするというのは許可されないでしょうか。

例)
Report_A : 会社名、代表者名、電話番号
Report_B: 会社名、利益
Report_C: 会社名、従業員数
Report_D : 会社名、住所、電話番号、営業担当者名

フォームに出力する「印刷書式」を選択するラジオボタンを設けておき、
選択された書式用のクエリーで印刷されるとか・・・
・ツリー全体表示

【3420】レポートを動的に作成する方法
質問  たけし  - 04/9/6(月) 15:50 -

引用なし
パスワード
   レポートを動的に作成する方法を教えてください。

会社ID 会社名  従業員数 ・・・ 利益 株価変動
1    (株)A    12    ・・・ 
2    (株)B    10    ・・・     
・・  ・・   ・・   ・・・

の中からクラインとが複数個項目(フィールド)を選択して,
選択された情報だけを印刷できるようにしようとしています。

最初からレポートのテンプレートを用意してしまうと,選択していない
フィールドまで表示されたり,無駄な余白が生じてしまいます。

さらに,レポートの印刷では,選択項目数によって印刷用紙の設定変更も
しようとしています。

レポートを動的に作成する方法を教えてください。
よろしくお願いします。
・ツリー全体表示

【3419】Re:Right,Left,MIDに付いて
お礼  ホーク  - 04/9/6(月) 14:11 -

引用なし
パスワード
   ▼Gin_II さん有難うございます。

>VBAの画面で「ツール」⇒「参照設定」を開き、'参照不可' となっている
>項目があると思いますので、チェックをはずしてください。

指示いただいたとおりしたら、RIGHT,LEFT,MID関数が使用できるようになりました。
感謝、感謝です。
今後、勉強してもっとACCESSを使いこなせるようにしたいです。
有難うございました。
・ツリー全体表示

【3418】Re:マクロでのデータ操作
お礼  干し梅  - 04/9/6(月) 12:15 -

引用なし
パスワード
   ▼Gin_II さん:
>「メッセージの設定」アクションを使ってください。

返信ありがとうございます。
早速試したところ、実行できました。とても簡単なことで少々恥ずかしいです。
ありがとうございました。
・ツリー全体表示

【3417】Re:実行時エラーについて
お礼  なおなお  - 04/9/6(月) 12:04 -

引用なし
パスワード
   Gin_II さん
お早い、ご回答ありがとうございます。

>A作業枚数・B作業枚数には、どういった値が入っていますか?

A作業枚数には210、B作業枚数には220が入っていました。
合計すると、430になってしまいますね・・・。

>作業枚数フィールドを、長整数型とかに変更してみてください。

長整数型に変更して、実行してみたところエラーが出ずに終了しました。
本当にありがとうございました。
・ツリー全体表示

【3416】Re:マクロでのデータ操作
回答  Gin_II  - 04/9/6(月) 12:03 -

引用なし
パスワード
   >いちいち「削除しますか?」などのメッセージが表示されてくるので、
>それを表示しないようにしたいのです。

「メッセージの設定」アクションを使ってください。
・ツリー全体表示

【3415】マクロでのデータ操作
質問  干し梅  - 04/9/6(月) 11:58 -

引用なし
パスワード
   ACCESSのマクロを初めて使おうとしています。

テーブルデータの削除と追加を実行したいのですが、
マクロで削除クエリや追加クエリをそのまま使うと、いちいち「削除しますか?」などのメッセージが表示されてくるので、それを表示しないようにしたいのです。
そこで、削除と追加の処理を記述したモジュールを作成しておき、
マクロではそのモジュールを呼び出すようにしたのですが、
実行すると

「指定した式に、Micro Office Accessが見つけることができない関数名が含まれています。」

とのメッセージが表示されてしまいました。
マクロの方の設定では、"アクション"は「プロシージャの実行」とし、
"プロシージャ名"には、作成したプロシージャ名(例:データ更新())と設定してあるだけです。
エラーメッセージの意味もよくわかりません。

どなたか、解る方いらっしゃらないでしょうか?
よろしくお願いします。
・ツリー全体表示

【3414】Re:実行時エラーについて
回答  Gin_II  - 04/9/6(月) 11:51 -

引用なし
パスワード
   >  作業枚数 = A作業枚数 + B作業枚数

>作業枚数、A作業枚数、B作業枚数フィールドは1つのテーブルの中に入っていて、
>データ型はバイト型です。

A作業枚数・B作業枚数には、どういった値が入っていますか?

バイト型だと、
「0 〜 255 の範囲の数値が設定できます。ただし、小数は設定できません。」
の値しか使えませんけど。

作業枚数フィールドを、長整数型とかに変更してみてください。
・ツリー全体表示

【3413】Re:ACCESS2002重複削除について
回答  YU-TANG WEB  - 04/9/6(月) 11:50 -

引用なし
パスワード
   こんにちは、YU-TANG です。

どうも私の説明が下手なようで、ご迷惑をおかけします。
もう一度、別の形で説明してみましょう。

次のような 2 つのテキストファイルが有ると仮定します。

【foo.txt】
ガンダム
ザク
ガンダム

【bar.txt】
ザク
リックドム
ザク

1 つのテキストファイル内でレコードの重複があり、さらに異なる
テキストファイル間でも重複があります。

これをいったん下のような 1 つのテキストファイルにまとめます。

【source.txt】
ガンダム
ザク
ガンダム
ザク
リックドム
ザク

やり方はどうでもいいです。
テキストエディタでコピー/貼り付けしても、DOS の COPY コマンド
でも、何でも構いません。

この統合済みテキストファイルからリンクテーブルを作成します。
リンクテーブルの作成手順は、MS のサイトやヘルプ、マニュアル、
市販の入門書等に山のように解説があるので、確認してください。

【リンクテーブル [source]】
F1
----------------
ガンダム
ザク
ガンダム
ザク
リックドム
ザク

このリンクテーブルからテーブル作成クエリを作成します。
テーブル作成クエリの作成手順は、MS のサイトやヘルプ、マニュアル、
市販の入門書等に山のように解説があるので、確認してください。

テーブル作成クエリの [固有の値] プロパティを「はい」に設定
します。
このプロパティ変更により、結果セットがレコード単位で重複無しに
なります。

テーブル作成クエリを実行すると、以下のようなローカルテーブルが
作成されるはずです。

【ローカルテーブル [destination]】
F1
----------------
ガンダム
ザク
リックドム

後は不要なリンクテーブルを削除すれば、終わりです。

必要であれば、上記手順が手動操作で意図どおりの結果になることを
確認後に、VBA に逐次移植するとよいでしょう。

なお Access と SQL に慣れてきたら、将来的に SQL 文一撃のように
改良しても良いかもしれませんが、最初のうちは基本に忠実に行う
ことをお奨めします。
近道を通ろうとして、メンテ不能の樹海に迷い込んだまま帰って来れ
なくなった方々がたくさんいらっしゃいますので。
# 合掌。†(ToT)/~~
・ツリー全体表示

【3412】Re:Right,Left,MIDに付いて
回答  Gin_II  - 04/9/6(月) 11:48 -

引用なし
パスワード
   >そこで、2000だとRight,Left,Mid関数が使用できません。
>そこで、Right,Left,Mid関数と同じような動きができる関数もしくは
>モジュールで何か出来ませんか?

使えますよ。おそらく参照設定がおかしくなっているのでしょうね。

VBAの画面で「ツール」⇒「参照設定」を開き、'参照不可' となっている
項目があると思いますので、チェックをはずしてください。
・ツリー全体表示

【3411】実行時エラーについて
質問  なおなお E-MAIL  - 04/9/6(月) 11:48 -

引用なし
パスワード
   みなさん、こんにちは。
今回は実行時エラーについて教えていただきたく質問させてください。
使用しているのはWindowsXP ProでAccess2000です。

If 作業 = "完了" Then
  工程終了 = "-1"
  完了数 = 枚数
  作業枚数 = A作業枚数 + B作業枚数
End If

というコードで最後の作業枚数を合計するところで

実行時エラー'-2147352567(80020009)'
このフィールドに入力した値が不正です。

と言うエラーが出てしまいます。
いつもこのエラーが出ている訳ではなく、エラーが出ないで終了する場合もあるのですが
どういった原因が考えられるのでしょうか?

作業枚数、A作業枚数、B作業枚数フィールドは1つのテーブルの中に入っていて、
データ型はバイト型です。

ちなみに、
作業枚数 = A作業枚数 や
作業枚数 = B作業枚数 と言った具合に、計算しなければ問題なく代入はできます。

お忙しいとは思いますが、どうかよろしくお願いいたします。
・ツリー全体表示

【3410】Right,Left,MIDに付いて
質問  ホーク  - 04/9/6(月) 11:32 -

引用なし
パスワード
   ACCESSの初心者です。
ここに質問すべき内容ではないと思いますがよろしくお願いします。

ACCESS95を使用して、クエリーでRight関数を使用していました。
今度、ACCESS2000にバージョンアップすることになり95から2000に
更新しています。
そこで、2000だとRight,Left,Mid関数が使用できません。
そこで、Right,Left,Mid関数と同じような動きができる関数もしくは
モジュールで何か出来ませんか?

よろしくお願いします。
・ツリー全体表示

486 / 500 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
1084780
(SS)C-BOARD v3.8 is Free