Access VBA質問箱 IV

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

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


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

【8779】Re:印刷プレビューページ数
回答  たん  - 06/11/7(火) 16:14 -

引用なし
パスワード
   >プレービューをすると、最終ページ数が53/50と表示され
>総ページ数より実ページ数の方が大きくなります。
>実際に印刷して見ると、最終ページは 50/50 です。
>1ページずつチェックすると、改ページのタイミングが違ったり
>データが歯抜けになっていたりします。

実データ内に、印刷時拡張により、本来のコントロールの大きさ以上に
なってしまうデータがある為に、詳細の行数がずれ、それにより、
ページ自体にズレが生じ、結果、ページカウントがずれていると思われます。
・ツリー全体表示

【8778】Re:日付を指定して、データーをカウント、...
発言  まさ7251  - 06/11/7(火) 15:35 -

引用なし
パスワード
   ▼うぃる さん:
>件数までは出来たのですが、期間を指定してその期間内のデータのみを
>一覧で抽出する方法がわかりません…。どうすればよいのでしょうか?

件数まで出来たのなら、あとは期間を条件に追加するだけかと思いますけど、
その辺はどうなのでしょうか。
また、現状どこまで出来ているのかもあわせて提示した方が良いですよ。

ところで、AccessClubの超初心者FORUMにも同じ質問していますよね。
”ちょっと考え方を変えたら出来ました。”で閉めたのではないんですか。
・ツリー全体表示

【8777】印刷プレビューページ数
質問  ぷー  - 06/11/7(火) 14:45 -

引用なし
パスワード
   いつも参考にさせていただきありがとうございます。

レポートについて教えてください。
レポートを作成し [Page] & "/" & [Pages] & " ページ" 
(ページ数/総ページ数)を出力していますが、あるレポートで
プレービューをすると、最終ページ数が53/50と表示され
総ページ数より実ページ数の方が大きくなります。
実際に印刷して見ると、最終ページは 50/50 です。
1ページずつチェックすると、改ページのタイミングが違ったり
データが歯抜けになっていたりします。

レポートは随分作成しましたが、このような現象は始めてです。
よろしくお願いいたします。

環境は WinXP + Access2003です。
・ツリー全体表示

【8776】Re:日付を指定して、データーをカウント、...
質問  うぃる  - 06/11/7(火) 11:03 -

引用なし
パスワード
   件数までは出来たのですが、期間を指定してその期間内のデータのみを一覧で抽出する方法がわかりません…。どうすればよいのでしょうか?
・ツリー全体表示

【8775】Re:ACCESS2000でのネットワークでの利用
回答  たん  - 06/11/6(月) 16:41 -

引用なし
パスワード
   >ネットワークで処理すると、起動までに30秒程度掛かります。

リンクテーブル、データセット経由での接続等、どんな形であろうと、
LAN上の外部テーブルを参照しに行く場合、参照元への接続までの時間、
及びLAN上のトラフィックによる遅延、
データ量、
SQL文等発行している場合は、グループ化やソート等の解決、

等が完了して、初めて接続元にリターンが返ってくるので、
SQL文自体を見直す以外に速くなる要素は見当たりにくいでしょう。

尚、どんなに頑張っても、「参照元への接続までの時間」については
短く出来ません。

# 一度「接続」してしまえば、そこから先は速くなるでしょう。
# (但し、mdbを起動する度に「接続時間」は発生します。)
・ツリー全体表示

【8774】Re:日付を指定して、データーをカウント、...
回答  まさ7251  - 06/11/6(月) 15:38 -

引用なし
パスワード
   ><エリア受付期間> 06/03〜06/08月まで
>
>[新規]連絡:3,交渉:2,仮契約:2,契約:2
>[継続]連絡:3,交渉:3,仮契約:1,契約:1
>

DCount関数で、それぞれの件数をカウントすれば良いのではないでしょうか。
条件の部分を、それぞれにあった形で設定すれば出来ると思います。
・ツリー全体表示

【8773】ACCESS2000でのネットワークでの利用
質問  初心者A  - 06/11/6(月) 15:03 -

引用なし
パスワード
   ACCESS2000でのネットワークでの利用で教えて下さい。

ACCESS2000のツール、データベースユーティリティー
のデータベース分割で、データとモジュールを分割して
処理しています。
30000件のデータを画面指示により
クエリーで抽出して表示させています。

ネットワークで処理すると、起動までに30秒程度掛かります。
PCのC:¥で処理すると6秒ぐらいなのですが・・・

このうように遅くなる場合の改善兵法などあれば
教えて下さい。
・ツリー全体表示

【8772】Re:計算しているフィールドに入力
回答  まさ7251  - 06/11/6(月) 12:22 -

引用なし
パスワード
   ▼とんきち さん:
>クエリ上で計算式を入れてある項目に入力したいのですが可能でしょうか?

不可能です。

>クエリ上でC:A*Bになっています
>そのクエリをフォームから入力していくようにしています
>品名、A、Bを入力するようにしています

Cの項目もテーブルに用意しておき、
フォーム上では、A、B入力時にCを自動計算しセット。
そして入力による変更も可能。
としておくべきかと思います。
・ツリー全体表示

【8771】日付を指定して、データーをカウント、抽...
質問  うぃる  - 06/11/6(月) 11:38 -

引用なし
パスワード
   はじめまして。
どうしてもうまく出来ないので、質問します。
OS:WinXP
Access Version:2003
日付などで表示してあるテーブルを、期間を選んで抽出できるフォームを作りたいのです。
そして、データをカウントして集計結果を出したいのですがフォーム等で出来るでしょうか?
作りたいのは

受け付け日 ○○年○月〜○○年○月まで

○は、入力して出力したい期間を選べるようにしたいのです。

ID:会社名:住所:担当:エリア受付日:連絡日:交渉日:契約種別:仮契約締結:契約締結日:備考
01:あああ:○○:aa:06/3/28  :06/4/2:06/4/10:新規  :○    :06/5/20
02:いいい:△△:bb:06/5/30  :06/6/5:06/6/22:新規  :○    :06/07/15
03:ううう:□□:cc:06/7/31  :06/8/8:06/9/11:継続  :×    :
04:えええ:○△:dd:06/7/31  :06/8/9:    :新規  :×    :
05:いいい:△×:ee:06/8/27  :06/9/2:06/9/12:継続  :○    :
06:ううう:□◆:ff:06/8/29  :06/9/4:06/9/23:継続  :×    :06/10/5


<エリア受付期間> 06/03〜06/08月まで

[新規]連絡:3,交渉:2,仮契約:2,契約:2
[継続]連絡:3,交渉:3,仮契約:1,契約:1


と、表示出来るようにしたいのですが、出来るのでしょうか。
元データーは仮契約以外は日付になっています。仮契約だけ○×表示なのですが
IIf関数を使って考えてみたのですが、カウントする方法がわかりません。
データが入っていなければ0、入っていれば1と表示するのは
連絡: IIf(IsNull([連絡日]),"0","1")でできたのですが、フォームで期間を選んでカウントする
というのがまったく想像がつきません…。
・ツリー全体表示

【8770】計算しているフィールドに入力
質問  とんきち  - 06/11/5(日) 18:12 -

引用なし
パスワード
   クエリ上で計算式を入れてある項目に入力したいのですが可能でしょうか?

クエリ上でC:A*Bになっています
そのクエリをフォームから入力していくようにしています
品名、A、Bを入力するようにしています

品名 A  B  C
あ  10  50  500
い  20  20  400
う  50  30  100

品名が"あ"、"い"の時はCに"500"、"400"がおのおの計算されて表示されてい
ます。
品名が"う"の時はCには数値を入力したいのです
特定の数値ではないので計算式にはできません
数値を入力したいです。

どうやっていいのか分かりません。
ご教授ください。
・ツリー全体表示

【8769】Re:型numeric から 型decimal への変換エ...
発言  keiのおトン E-MAIL  - 06/11/3(金) 13:34 -

引用なし
パスワード
   ▼keiのおトン からの追加発言でおます.

桃姫 さん,もういいんですかネ?

「型numeric から 型decimal への変換エラー」みたいなエラーは
プログラム作成中によく発生しますので,念の為,Googleで検索したら
【ホームページ】のようなやりとりが見つかりました.

当たらずとも遠からず...と思います.ご参考まで...

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

上記の文面で,Googleで見つけたホームページを引用してプレビューしたら,

「ERROR:ホームページアドレスに禁止語句が含まれています。」

が発生しました.(「桃姫」のほうがヤバいような気もするのですが...^-^;)

で,引用は削除しますが,必要ならGoogleサイトで
キーワード「型numeric から 型decimal への変換エラー」で検索して
みてください.
・ツリー全体表示

【8768】Re:テーブル名をレポートのヘッダに表示す...
お礼  shin  - 06/11/3(金) 12:10 -

引用なし
パスワード
   ▼まさ7251 さん:

こんにちは。
早速のレス有り難うございます。

今回はテーブル名自体だったので、出来ないものだと思い込んでいました。

お陰様で希望通り表示することが出来ました。

>ただし、リストボックスが複数選択可能となっているなら、
>ItemsSelected 等を使って、VBAで取得し、
>テキストボックスへセットすることになるかと思います。

今回はテーブルデータ印刷の見出しと使用しますので不要ですが、
次回のために勉強させて頂きます。

本当に有り難うございました。
・ツリー全体表示

【8767】Re:テーブル名をレポートのヘッダに表示す...
回答  まさ7251  - 06/11/3(金) 11:23 -

引用なし
パスワード
   >質問
>表題の如く、リストボックスで選択したテーブル名を
>レポートのヘッダのテキストボックスに表示したいのですが
>方法が全く分かりません。
>何方かヒントを頂けないでしょうか?

通常のリストボックスなら、
レポートにテキストボックス作って、コントロールソースに
=[Forms]!フォーム名!リストボックスコントロールの名前
で出来ます。

ただし、リストボックスが複数選択可能となっているなら、
ItemsSelected 等を使って、VBAで取得し、
テキストボックスへセットすることになるかと思います。
・ツリー全体表示

【8766】テーブル名をレポートのヘッダに表示する
質問  shin  - 06/11/2(木) 22:34 -

引用なし
パスワード
   お手数ですが又分からない事が出来ましたので、アドバイス御願いします。
(直接VBAとは関係無しとして問題があるようでした無視して下さい)

質問
表題の如く、リストボックスで選択したテーブル名を
レポートのヘッダのテキストボックスに表示したいのですが
方法が全く分かりません。
何方かヒントを頂けないでしょうか?

リストボックスの表示は
 SELECT MsysObjects.Name
  FROM MsysObjects
  WHERE (((MsysObjects.Name) Like "試験" & "*") AND ((Left$([Name],1))
  <>'~') AND ((MsysObjects.Type)=1))
  ORDER BY MsysObjects.Name;

にて表示させています。
・ツリー全体表示

【8765】Re:外部接続とコンボボックスのデータソー...
お礼  すず  - 06/11/1(水) 14:19 -

引用なし
パスワード
   ▼keiのおトン さん:

>私も「飛ばない豚」さん同様,AccessVBAのイベントだと思い込んでました.
>ただ,例えば,「すず.mdb」内で,sentaku.mdbを参照するのかと...
>
>やはり、「あるソフト」や稼働環境を知る必要があります.

ご指導ありがとうございます。
フォームはAccessでしか使ったことがなかったので、自分自身がごちゃまぜになっております。説明不足ですいません。
CATIAというソフトのユーザーフォームを使う場合は、EXCELのユーザーフォームと同じでよいみたいですね。
・ツリー全体表示

【8764】Re:外部接続とコンボボックスのデータソー...
お礼  すず  - 06/11/1(水) 14:16 -

引用なし
パスワード
   ▼keiのおトン さん、ありがとうございました。
教えていただいたとおりに記述してみたら、できました。
大変助かりました!
また、わからないことがありましたら、どうぞよろしくお願いいたします。

>Excelでですが,RowSourceにこだわらず,とにかく動けばいいのでしたら
>以下のようにすれば動きますが...
>
>
>  rec.Open "選択", cnn, adOpenKeyset, adLockOptimistic
>  rec.MoveFirst
>  'ComboBox1.Clear
>  While Not (rec.EOF)
>   ComboBox1.AddItem rec.Fields("レベル1")
>   rec.MoveNext
>  Wend
・ツリー全体表示

【8763】Re:フォーカスの有無の取得
お礼  飛ばない豚  - 06/11/1(水) 8:37 -

引用なし
パスワード
   ▼keiのおトン さん:

>if Screen.ActiveControl.Name = "box_AAA" then

ばっちりです。

ありがとうございました。
・ツリー全体表示

【8762】Re:外部接続とコンボボックスのデータソー...
回答  keiのおトン E-MAIL  - 06/10/31(火) 21:30 -

引用なし
パスワード
   ▼すず さん:
>▼飛ばない豚 さん、お答えありがとうございます。
>
>>エクセルの場合、変数(myDATA()など)に格納し、フォームのInitializeイベントで
>>Me.コンボボックス.List = myDATA
>>とすると、設定できます。
>
>下記のように修正しました。ところがやはり
>「Couldn't set the RowSource property. Invalid property value.」
>とエラーがでました。
>
>
>Private Sub UserForm_Initialize()
>
>  Dim cnn As New ADODB.Connection
>  Dim rec As New ADODB.Recordset
>  Dim mydata As Variant
>  cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
>       "Data Source=O:\sakakibara\sentaku.mdb;"
>
>  rec.Open "選択", cnn, adOpenKeyset, adLockOptimistic
>  
>  mydata = "SELECT レベル1 FROM 選択 IN 'O:\sakakibara\sentaku.mdb'"
>  ComboBox1.RowSource = mydata
>
>End Sub
>
>>ちなみに「あるソフト」とは何なのでしょう?
>>(Access)VBAは動くのでしょうか?
>>recordsetの取得は可能なのですよね?
>
>Accessへの接続まではできているようです。
>ソフトはCATIAというCADソフトです。
>
>>手動で設定するときはどのように設定するのでしょうか?
>>Accessのように、"1,a,2,b,3,c,,,,,"と設定できますか?
>>出来るのであれば、recordsetの値を変換してセットできそうな気もします。
>>(recordsetが取得できる事が前提ですが)
>
>プロパティのrowsourceに手動で値を設定してみましたが、同じエラーがでました。
>
>何かいい方法がありましたら、よろしくご指導お願いいたします。

-------------------------------------------------------------------
Excelでですが,RowSourceにこだわらず,とにかく動けばいいのでしたら
以下のようにすれば動きますが...


Private Sub UserForm_Initialize()
  
  Dim cnn As New ADODB.Connection
  Dim rec As New ADODB.Recordset
  Dim mydata As Variant
  cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
       "Data Source=C:\temp\sentaku.mdb;"

  rec.Open "選択", cnn, adOpenKeyset, adLockOptimistic
  rec.MoveFirst
  'ComboBox1.Clear
  While Not (rec.EOF)
   ComboBox1.AddItem rec.Fields("レベル1")
   rec.MoveNext
  Wend
 
End Sub
・ツリー全体表示

【8761】Re:型numeric から 型decimal への変換エ...
発言  keiのおトン E-MAIL  - 06/10/31(火) 19:31 -

引用なし
パスワード
   ▼桃姫 さん:

>こんにちわ お世話になります
>型numeric から 型decimal への変換エラー
>このようなエラーメッセージがでました。
>どのようにしてエラーの意味を探したら
>良いでしょうか? ヘルプに入れると
>意味がわかりませんとなります。
>宜しくお願いします


逆質問1)
>型numeric から 型decimal への変換エラー
ということはAccess(mdb)ではなくAccess(adp),つまりMSDEか
SQLServerを使用しているということですか?

逆質問2)
「変換エラー」ということは,プログラムをテストするか動かすか
しているときに出たのですか?

「何を使用して」「何をしたら」エラーが出たのか教えてください.
・ツリー全体表示

【8760】Re:フォーカスの有無の取得
回答  keiのおトン E-MAIL  - 06/10/31(火) 18:54 -

引用なし
パスワード
   ▼飛ばない豚 さん:
>コントロールにフォーカスが当たっているかどうかを調べることはできますか?
>
>具体的にはテキストボックス(box_AAA)です。
>このbox_AAAにフォーカスがない場合は、そのまま、
>box_AAAにフォーカスがある場合は、次のコントロールにSetFocusした後、
>box_AAAの可視プロパティを「いいえ」に変更したいと思ってます。
>
>
>フォーカスが当たっているかどうかを取得する方法をご存知でしたら、
>よろしくお願いします。

こんばんは,別の(すずさんの)件で来て見つけました.

「MsgBox Screen.ActiveControl.Name」で,現在フォーカスを持っている
コントロールの名前を表示します.ですので,

if Screen.ActiveControl.Name = "box_AAA" then
  ・
  ・
  ・

でどうでしょうか?
・ツリー全体表示

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