Access VBA質問箱 IV

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

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


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

【9995】Re:複数条件がうまくいきません
回答  BOO E-MAIL  - 07/11/20(火) 19:49 -

引用なし
パスワード
   小僧さん

失礼いたしました。
決して、丸投げをしている訳ではないのですが・・・・。
どのような質問の仕方をすればよいのかわからず、記入してしまいました。
すみません。

具体的に記入します。

顧客テーブルと顧客テーブルのレコードを単票形式で表示するメインフォームを作成しています。
構成は
顧客番号
顧客氏名
顧客カナ
登録月
他です。

検索画面フォームを別に作成し、顧客番号、氏名、カナ、登録月の検索項目とし、メインフォームと連動させたいのです。

メインフォームに連動させるのがうまくいきません。
クエリで抽出する方法があればご指導お願いいたします。

>現在の検索画面はどのようなものなのか
>・連結/非連結フォーム
>・単票/帳票フォーム等
>
>条件一つだと抽出ができるのか
>またその場合どのような方法で抽出をしているのか
>
>など、御自分でどこまでできていて、何が解らないのかを明確にご提示すれば
>もっと回答がつきやすくなると思われます。
・ツリー全体表示

【9994】データ型のインポートエラーについて
質問  ts  - 07/11/20(火) 17:38 -

引用なし
パスワード
   accessでエクセルのデータをマクロでインポートしています。
テキスト型で設定してあるフィールドに数値データと文字データがある場合データを取り込もうとするとデータ型のエラーになります。
数値データと文字データを取り込める方法はないでしょうか?
エクセルでセルの書式で文字列にしてもインポート時に自動で型をaccessが判断してしまい。数値データなら数値データ、文字データなら文字データしかはいらないようになってしまいます。誰かわかる方教えてください。宜しくお願い致します。
・ツリー全体表示

【9993】Re:複数条件がうまくいきません
発言  小僧  - 07/11/20(火) 10:04 -

引用なし
パスワード
   ▼BOO さん:
こんにちは。

まず、画面上部の

>本サイトの基本方針をまとめました。こちら をご一読ください。

の こちら のリンク先をお読みになって下さい。

> してはいけない質問について

の 丸投げに相当していませんか?


現在の検索画面はどのようなものなのか
・連結/非連結フォーム
・単票/帳票フォーム等

条件一つだと抽出ができるのか
またその場合どのような方法で抽出をしているのか

など、御自分でどこまでできていて、何が解らないのかを明確にご提示すれば
もっと回答がつきやすくなると思われます。
・ツリー全体表示

【9992】複数条件がうまくいきません
質問  BOO E-MAIL  - 07/11/19(月) 13:16 -

引用なし
パスワード
   検索画面を作成し、そこで複数条件で、データを抽出したいんですが、うまくいきません。アクセス初心者なので、簡単な方法で教えていただきたいのですが、
よろしくお願いいたします。
・ツリー全体表示

【9990】Re:フィールドのデータの一部を置き換えた...
質問  TAKE  - 07/11/19(月) 9:35 -

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

氏名テーブルと変更テーブルがあり
氏名テーブルには
氏名
x1日本
日本x1
東京x2
東京x2日本x1
変更テーブルには
記号  変更後記号
x1    (株)
x2    (有)

更新して
氏名テーブルを
(株)日本
日本(株)
東京(有)
東京(有)日本(株)
にしたいのです。


(1) テーブルのデータシートビューで置換を行う
(2) 更新クエリを作成して実行する
のどちらかで作成可能なのでしょうか?
よろしくお願いします。
・ツリー全体表示

【9989】Re:アクセス95から2000に移行後のエラー
お礼  timtim  - 07/11/18(日) 12:38 -

引用なし
パスワード
   長い間、教えて頂きましてありがとう御座いました。
何とか移行後のエラーが元に回復できました。
使ってみてエラーがでましたら その時はよろしくお願いします。
ほんとにありがとう御座いました。
・ツリー全体表示

【9988】Re:フィールドのデータの一部を置き換えた...
回答  Gin_II  - 07/11/16(金) 17:32 -

引用なし
パスワード
   ▼TAKE さん:
>データにX1日本があります。
>テーブルには
>X1 (株)
>X2 (有)
>があり
>更新して
>(株)日本にしたいのです。

(1) テーブルのデータシートビューで置換を行う
(2) 更新クエリを作成して実行する

のどちらかで。
・ツリー全体表示

【9987】フィールドのデータの一部を置き換えたい...
質問  TAKE  - 07/11/16(金) 17:23 -

引用なし
パスワード
   データにX1日本があります。
テーブルには
X1 (株)
X2 (有)
があり
更新して
(株)日本にしたいのです。
よろしくお願いします。
・ツリー全体表示

【9986】Re:グループ化したものを集計したい
お礼  あおぎん  - 07/11/16(金) 12:16 -

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

ご提示の方法すべて試しました。
できました!
ありがとうございました。


>
>空欄 = Null
>ということであれば、
>
>"[フィールド名] Is Null"
>"IsNull([フィールド名])"
>
>のどちらかで試してみてください。
>
>空文字も含めて判定したいのであれば、
>
>"Nz([フィールド名],'') = ''"
>
>とか、
>
>"Len(Nz([フィールド名],'')) = 0"
>
>などで、どうでしょうか?
・ツリー全体表示

【9985】Re:グループ化したものを集計したい
回答  Gin_II  - 07/11/16(金) 10:34 -

引用なし
パスワード
   >DCountで、空欄の数を数えるのはどうしたらよいでしょうか?
>=DCount("[氏名]","[Q_結果]","[肝機能]=null")
>としてもエラーが出ます。

空欄 = Null
ということであれば、

"[フィールド名] Is Null"
"IsNull([フィールド名])"

のどちらかで試してみてください。

空文字も含めて判定したいのであれば、

"Nz([フィールド名],'') = ''"

とか、

"Len(Nz([フィールド名],'')) = 0"

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

【9984】Re:グループ化したものを集計したい
質問  あおぎん  - 07/11/16(金) 9:54 -

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

ご提示の方法でやってみたらできそうです。
ありがとうございました!


それと・・最初の投稿に関連して質問があるのですが・・。

DCountで、空欄の数を数えるのはどうしたらよいでしょうか?
=DCount("[氏名]","[Q_結果]","[肝機能]=null")
としてもエラーが出ます。
何か方法がありますでしょうか??
・ツリー全体表示

【9983】Re:アクセス95から2000に移行後のエラー
回答  Gin_II  - 07/11/16(金) 8:49 -

引用なし
パスワード
   DoCmd.OpenForm "E東亜請求書手入力", acNormal, , , acEdit

> acNormal, , , acEdit が間違ってるのでしょうか?

と思ったのであれば、ヘルプを確認してください。

OpenForm メソッド(Access2003ヘルプより引用)

DataMode  省略可能です。AcFormOpenDataMode クラスの定数を使用します。

使用できる定数は、次に示す AcFormOpenDataMode クラスの定数のいずれかです。
acFormAdd ユーザーは新しいレコードを追加できますが、既存のレコードを編集できません。
acFormEdit ユーザーは既存のレコードを編集したり、新しいレコードを追加したりできます。
acFormPropertySettings (既定値)
acFormReadOnly ユーザーはレコードの参照のみ可能です。

Access2003では、上記のようになっています。
・ツリー全体表示

【9982】Re:アクセス95から2000に移行後のエラー
質問  timtim E-MAIL  - 07/11/16(金) 1:40 -

引用なし
パスワード
   ご迷惑をかけてすみません、入力しましたら
こんどは、実行時エラー2501
「OpenForm アクションの実行はキャンセルされました。」と
下記の2行目がエラー表示されました。

Private Sub 東亜建設工業請求書_Click()
  DoCmd.OpenForm "E東亜請求書手入力", acNormal, , , acEdit
End Sub

acNormal, , , acEdit が間違ってるのでしょうか?
・ツリー全体表示

【9981】Re:グループ化したものを集計したい
回答  Gin_II  - 07/11/15(木) 13:31 -

引用なし
パスワード
   > T_結果
> 所属コード社員コード 氏名 性別  年代 コース BMI判定 肝機能 ・・・    
> 1      1     あ   男   40  B   肥満   要精密検査  
> 1      2     い   女   30  B   標準   異常なし  
> 2      3     う   男   30  A   やせぎみ 
> ・
> ・

SELECT 所属コード, 社員コード, "BMI判定" AS 種別, BMI判定 AS 判定 FROM T_結果
UNION ALL
SELECT 所属コード, 社員コード, "肝機能", 肝機能 FROM T_結果
UNION ALL
    :

のようなクエリを作れば、それを基にクロス集計クエリが使えると思います。
・ツリー全体表示

【9980】グループ化したものを集計したい
質問  あおぎん  - 07/11/15(木) 12:28 -

引用なし
パスワード
   いつもお世話になっています。

社員の健康診断を外部に委託しており、その結果が下記のようなデータで届くのですが

T_結果
所属コード社員コード 氏名 性別  年代 コース BMI判定 肝機能 ・・・    
1      1     あ   男   40  B   肥満   要精密検査  
1      2     い   女   30  B   標準   異常なし  
2      3     う   男   30  A   やせぎみ 


※判定項目は、以下 脂質、糖代謝、胃など15項目ほど。
※BMI判定以外は 異常なし、観察、要経過観察、要精密検査、要治療、治療中、要再検査 のどれかが判定として入っています。(空欄もあり)

これを 下記のように、判定ごとの人数で集計する必要があります。

          肝機能  脂質  糖代謝  胃 ・・・
受診者数(合計)   583   579   691   41 
 異常なし      470   147   611   40
 観察         0   219     6   0
 要経過観察      33   152    35   0
 要精密検査      70    14    14   1
 要治療        0    27    0   0
 治療中        10    20    13   0
 要再検査       0    0    12   0
 
ひとつの種目の集計(肝機能だけ・・とか)ならクロス集計でできるのですが、複数の種目を集計する方法がよくわからなかったので、このテーブルをもとにしたQ_結果でレポートを作成し、レポートフッターにテキストボックスを配置し

異常なし: =DCount("[氏名]","[Q_結果]","[肝機能]='異常なし'")
観察  : =DCount("[氏名]","[Q_結果]","[肝機能]='観察'")



などとして、データ元から、それぞれの数をカウントし表示する方法をとっています。

で、最終的には、コースごとや年代ごとの集計も必要なので、それぞれグループ化して、グループフッターに同じようなテキストを配置したのですが、当たり前なのでしょうけど、全体の数がカウントされます。
そこで、
=DCount("[氏名]","[Q_結果]","[肝機能]='異常なしand [コース]=report!R_結果!コース")
と条件を加えたり、
グループフッターのフォーマット時イベントにコードを記述すればいいのかなと思い、
Me.テキスト肝機能_異常なし = DCount("[氏名]","[Q_結果]","[肝機能]='異常なしand [コース]=report!R_結果!コース")
などと記述したりしましたが、エラーが出ます。

レポートでグループごとに、数値をカウントする方法があるでしょうか?
もしくは他にこういった集計をするのにいい方法がありましたらご教示をお願いします。

現在は 別にフォームを作って、複数のコンボボックスでコースや年代を入力しデータ抽出したクエリをもとにして、レポートを表示させるという方法でやっていますが、できれば、ひとめで、個別の件数と全体の件数が見れるものが欲しいと思っています。
どうぞよろしくお願いします。

(win2000 Access2000)
・ツリー全体表示

【9979】Re:アクセス95から2000に移行後のエラー
回答  Gin_II  - 07/11/15(木) 8:41 -

引用なし
パスワード
   > 多分 アクセス95の分では最初に平成・年・月・日と日付を
> 入力します、エラー部分は日付の読み込みかと思いますが・・・。

どういうことでしょうか?

>   Set D_DB = DBEngine.Workspaces(0).OpenDatabase(DBNAME)

これは、外部のmdbファイルを開くときに使うもので、引数には
mdbファイル名が入っているはずです。

そのmdbファイルは、開いているファイルとは別なんですよね?


> Set CTL = D_DB.OpenRecordset("Fコントロール")

このテーブル(クエリ?)が、どのファイルに入っているかを確認して
ください。

外部のファイルであれば、OpenDatabase メソッドを使うか、リンクテーブルで
Find 系のメソッドを使う必要があると思います。
・ツリー全体表示

【9978】Re:アクセス95から2000に移行後のエラー
質問  timtim E-MAIL  - 07/11/14(水) 11:12 -

引用なし
パスワード
   ▼Gin_II さん:
>>上記のとおり修正したところ 実行時エラー 3219
>>と変更した行全体が黄色くなります。
>
>元のコードの、
>
>>   Set D_DB = DBEngine.Workspaces(0).OpenDatabase(DBNAME)
>
>ここの、DBNAME には何が入っていますか?
>同じmdbファイル内のテーブル(リンクテーブルは不可)であれば、
>OpenRecordset メソッドで、dbOpenTable が使えると思いますけど。

誠にすみません、多分 アクセス95の分では最初に平成・年・月・日と日付を
入力します、エラー部分は日付の読み込みかと思いますが・・・。
よろしくお願いします。
・ツリー全体表示

【9977】Re:アクセス95から2000に移行後のエラー
回答  Gin_II  - 07/11/14(水) 10:20 -

引用なし
パスワード
   >上記のとおり修正したところ 実行時エラー 3219
>と変更した行全体が黄色くなります。

元のコードの、

>   Set D_DB = DBEngine.Workspaces(0).OpenDatabase(DBNAME)

ここの、DBNAME には何が入っていますか?
同じmdbファイル内のテーブル(リンクテーブルは不可)であれば、
OpenRecordset メソッドで、dbOpenTable が使えると思いますけど。
・ツリー全体表示

【9976】Re:アクセス95から2000に移行後のエラー
質問  timtim E-MAIL  - 07/11/14(水) 9:14 -

引用なし
パスワード
   ▼Gin_II さん:
>> CTL.INDEX = "主キー"
>
>"主キー"という名前のインデックスは設定してあるかを確認してください。
>テーブルのデザインビューで、「表示」→「インデックス」
>
>設定がしてあるのならば、
>
>>   Set CTL = D_DB.OpenRecordset("Fコントロール")
>
>  Set CTL = D_DB.OpenRecordset("Fコントロール", dbOpenTable)
>
>のように変更してください。


おはよう御座います、お世話になります。

上記のとおり修正したところ 実行時エラー 3219

と変更した行全体が黄色くなります。

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

【9975】Re:アクセス95から2000に移行後のエラー
回答  Gin_II  - 07/11/14(水) 8:41 -

引用なし
パスワード
   > CTL.INDEX = "主キー"

"主キー"という名前のインデックスは設定してあるかを確認してください。
テーブルのデザインビューで、「表示」→「インデックス」

設定がしてあるのならば、

>   Set CTL = D_DB.OpenRecordset("Fコントロール")

  Set CTL = D_DB.OpenRecordset("Fコントロール", dbOpenTable)

のように変更してください。
・ツリー全体表示

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