Access VBA質問箱 IV

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

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


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

【10746】Re:複数条件からのデータ抽出について
回答  Gin_II  - 08/11/19(水) 15:11 -

引用なし
パスワード
   > On Error GoTo e

コメントアウトして、きちんと実行できるかどうかを確認してください。
また、実行時エラー等が発生しないのであれば、

> If Len(strWhere) > 0 Then
>   Me.RecordSource = stSql & "WHERE " & Mid(strWhere, 5)
> Else
>   Me.RecordSource = stSql
> End If

この後に、

Debug.Print Me.RecordSource

と入れて、イミディエイトウィンドウニ表示された内容をこちらにアップしてください。
・ツリー全体表示

【10745】Re:複数条件からのデータ抽出について
質問    - 08/11/19(水) 14:47 -

引用なし
パスワード
   いただいた回答に沿ってVBAを書き直してみましたが、数値は識別してくれるもののやはりアルファベットは識別せず、全部抽出してしまうようです…???
▼Gin_II さん:
・ツリー全体表示

【10744】Re:クエリ抽出
発言  Gin_II  - 08/11/19(水) 13:15 -

引用なし
パスワード
   すごく読みづらいです。
・適宜、改行を入れて投稿してください。
・全文引用は避けてください。

> こちらの2番か3番が私の構成に似ていると思いますが、

私が提示した内容は、案1・案2のようなものではなく、ひとつのシステムで
必要だと思われる構成です。

とこやさん の
> テーブル:???
> ・日付
> ・メニュー1
> ・メニュー2
>   :
> ・メニュー10

この部分を、

> テーブル:T_売上
> ・売上ID
> ・日付
> ・顧客ID
>
> テーブル:T_売上明細
> ・売上ID
> ・メニューID

この2つのテーブルに分けて管理する方法となります。

テーブルの正規化について、調べてみてください。

データベースの正規化の基礎
http://support.microsoft.com/kb/283878/

テーブル正規化ウィザードについて - Access - Microsoft Office Online
http://office.microsoft.com/ja-jp/access/HP052753851041.aspx
・ツリー全体表示

【10743】Re:クエリ抽出
回答  とこやさん E-MAIL  - 08/11/19(水) 12:49 -

引用なし
パスワード
   >テーブル構成を見直すべきだと思いますけど。
>例えば以下のように。
>
>
>テーブル:T_顧客
>・顧客ID
>・顧客名
>
>テーブル:T_メニュー
>・メニューID
>・名称
>・金額
>
>テーブル:T_売上
>・売上ID
>・日付
>・顧客ID
>
>テーブル:T_売上明細
>・売上ID
>・メニューID
忙しいところご教授してくださいましてありがとうございます、        こちらの2番か3番が私の構成に似ていると思いますが、ココでのメニューを実は売り上げ管理のテーブルに連結したフォーム上でコンポボックスにより入力している訳です、そしてそのコンポボックスが10個ありそれぞれメニュー1〜メニュー10に分けられているのです、・・・例えばメニュー1をカットだけに割り当てた様にフォームを造ると今現在ですと33のテキストボックスからの入力となりまだまだ増えていく状態です、フォーム上もそれですと非常に見難くなるのでコンポボックスを利用してます、なので例えばパーマがメニュー2に入るかメニュー3にはいるかその時の状況ににより変ってくるのです、抽出条件に一致する条件の無いフィールドに対して0と数値で返してくれる方法は無いでしょうか?
・ツリー全体表示

【10742】Re:複数条件からのデータ抽出について
回答  Gin_II  - 08/11/19(水) 11:31 -

引用なし
パスワード
   >     stList = "[アルファベット]='" & Combo & "'"

ここで設定した内容を、

>       stList = "[数値]>=" & kazu3 & "And[数値]<=" & kazu4

上書きしているので、

> 数値だけは抽出できるのですが、ABC別に抽出することが出来ません。

当然そうなりますね。
ちなみに、書かれているものは、スペースがなかったりするのでエラーに
なると思いますが、実際に使っているものは、きちんと書いているという
ことですよね?


Dim strSql As String
Dim strWhere As String

strSQL = "SELECT * from Sheet1_2クエリ "

If Not IsNull(Me!combo) Then
  strWhere = strWhere & " AND アルファベット = '" & Me!combo & "'"
End If

If Not IsNull(Me!kazu3) Then
  If Not IsNull(Me!kazu4) Then
    strWhere = strWhere & " AND 数値 BETWEEN " & Me!kazu3 & " AND " & Me!kazu4
  Else
    strWhere = strWhere & " AND 数値 =" & Me!kazu3
  End If
End If

If Len(strWhere) > 0 Then
  Me.RecordSource = stSql & "WHERE " & Mid(strWhere, 5)
Else
  Me.RecordSource = stSql
End If
・ツリー全体表示

【10741】複数条件からのデータ抽出について
質問    - 08/11/19(水) 10:33 -

引用なし
パスワード
   ACCESSのVBAについて質問です。
クエリ(VBAでは”Sheet1_2クエリ”)から、コンボボックス(”combo”)でABCを入力し、さらに数値1(”kazu3”)から数値2(”kazu4”)までのデータを抽出するには?(下記参照)

Private Sub cmd1_Click()
On Error GoTo e
Dim stSQL As String
Dim stList As String

stSQL = "SELECT * from Sheet1_2クエリ WHERE"
'アルファベットの条件
If Combo <> "" Then
stList = "[アルファベット]='" & Combo & "'"
End If
'数値の条件
If kazu3 <> "" Then
If kazu4 <> "" Then
stList = "[数値]>=" & kazu3 & "And[数値]<=" & kazu4
Else
stList = "[数値]=" & kazu3
End If
End If

stSQL = stSQL & stList
Me.RecordSource = stSQL
e:
Exit Sub
End Sub

数値だけは抽出できるのですが、ABC別に抽出することが出来ません。
どなたかご指摘お願いいたします!
・ツリー全体表示

【10740】Re:クエリ抽出
発言  Gin_II  - 08/11/19(水) 10:17 -

引用なし
パスワード
   > フィールド
>
> 日付
> メニュー1
> メニュー2
>   :
> メニュー10

> それぞれ順不動で入力されていく様になっています、

テーブル構成を見直すべきだと思いますけど。
例えば以下のように。


テーブル:T_顧客
・顧客ID
・顧客名

テーブル:T_メニュー
・メニューID
・名称
・金額

テーブル:T_売上
・売上ID
・日付
・顧客ID

テーブル:T_売上明細
・売上ID
・メニューID
・ツリー全体表示

【10739】クエリ抽出
質問  とこやさん E-MAIL  - 08/11/19(水) 10:07 -

引用なし
パスワード
   初心者です、宜しくお願いいたします、クエリでの抽出で困っています、
フィールドが日付、メニュー1、メニュー2・・・・・・とメニューが10まで有るのですが、それぞれのメニューにはカットやパーマetcそれぞれ順不動で入力されていく様になっています、メニュー1にカットが入ったりメニュー2にカットが入ったりすることも有るわけです、そこで日付別にカットが何人と言う具合に抽出したいのですが、メニュー3にカットが無いと抽出出来なくなってしまいます、これはメニュー3にカットが無くそれを数値で返してくれないから(たとえば0という様に)からだと思います、なにか良い方法があったらご教授ください
・ツリー全体表示

【10738】Re:データの並べ替えについて
回答  Gin_II  - 08/11/18(火) 8:17 -

引用なし
パスワード
   > 以下のテーブルがあるとします、
>Aテーブル
>コード  商品名  数量  金額    単価
>AB01   あ    10   100    10
>・
>・
>以下のように同一コードをセットして、並べ替えするには、どうしたらいいでしょうか?
>結果
>コード  商品名  項目  結果
>AB01   あ    数量  10
>AB01   あ    金額  100
>AB01   あ    単価  10

並べ替えとは?
とりあえず、数量・金額・単価をレコード方向へ展開するのなら、
ユニオンクエリが使えますね。

クエリのSQLビューで、

SELECT コード
   , 商品名
   , "数量" AS 項目
   , 数量 AS 結果
FROM Aテーブル
UNION ALL
SELECT コード
   , 商品名
   , "金額"
   , 金額
FROM Aテーブル
SELECT コード
   , 商品名
   , "単価"
   , 単価
FROM Aテーブル

のように記述してみてください。
・ツリー全体表示

【10737】データの並べ替えについて
質問  夜勤  - 08/11/18(火) 7:40 -

引用なし
パスワード
   おはようございます
 Accessの勉強中ですので、よろしくお願いします。
あるデータ処理を行いたいと思いまして、処理方法が分からず、指導をいただきたくて、投稿しました。
 以下のテーブルがあるとします、
Aテーブル
コード  商品名  数量  金額    単価
AB01   あ    10   100    10


以下のように同一コードをセットして、並べ替えするには、どうしたらいいでしょうか?
結果
コード  商品名  項目  結果
AB01   あ    数量  10
AB01   あ    金額  100
AB01   あ    単価  10
・ツリー全体表示

【10736】Re:同時アクセス数
お礼  ひろのしま  - 08/11/17(月) 12:33 -

引用なし
パスワード
   ありがとうござい摩周湖。
役に立ち真下警部はネゴシエーター(踊る大捜査線)
GinGinです。
(別にふざけてないです)

ふぅ、助かりました。
\(^o^)\

▼Gin_II さん:
>>Accessからリンクテーブルでmdbを接続しているのですが、
>>データベースへの同時アクセス人数の取得できる
>>オブジェクトとプロパティを知りたいのです。
>
>Access 2000 で Microsoft Jet UserRoster を使用して、データベースにログインしているユーザーをチェックする方法
>http://support.microsoft.com/kb/198755/ja
>
>こちらはどうでしょうか?
・ツリー全体表示

【10735】Re:同時アクセス数
回答  Gin_II  - 08/11/14(金) 14:28 -

引用なし
パスワード
   >Accessからリンクテーブルでmdbを接続しているのですが、
>データベースへの同時アクセス人数の取得できる
>オブジェクトとプロパティを知りたいのです。

Access 2000 で Microsoft Jet UserRoster を使用して、データベースにログインしているユーザーをチェックする方法
http://support.microsoft.com/kb/198755/ja

こちらはどうでしょうか?
・ツリー全体表示

【10734】同時アクセス数
質問  ひろのしま  - 08/11/14(金) 14:01 -

引用なし
パスワード
   質問します。
Accessからリンクテーブルでmdbを接続しているのですが、
データベースへの同時アクセス人数の取得できる
オブジェクトとプロパティを知りたいのです。

わかる方がいらっしゃいましたら、よろしくお願いします。
・ツリー全体表示

【10733】Re:エクセルに値渡ししたい
お礼  ON  - 08/11/13(木) 15:15 -

引用なし
パスワード
   遅くなりました
ぐぐりまくって
動作できるサンプルで
脳みそが うにうに → うに
ぐらいになりましたが・・・
まとめとしてアップできるような状況ではありません

絡み合いが凄すぎて・・・みたいな感じなんですが
下記関連事項をあいまいにしてきたことが
原因とおもわれました


■ Call と括弧と引数の微妙な三角関係
tp://shadowslasheizan.blog114.fc2.com/blog-entry-87.html

■ 参照方法、値渡しと参照渡しを明示しよう!
tp://home.att.ne.jp/zeta/gen/excel/c04p11.htm


同一プロジェクト内では参照渡しは可能ですが、
別プロジェクト(別ブック)では、ByRefを明示しても値渡し



Runメソッド
実行時バインディングで呼び出せばByRefも有効

か・・・


現在、とりあえずご教授いただいた方法で
他のアプリケーションに、引数渡しすることが出来ていますので
次回使用時等、少しずつ、うに の解消に努めて行きたいと思います

漠然としすぎていて申し訳ありませんが
上記で、今回の報告とさせていただきます

再質問が、別Q等であるかも知れませんが
そのときによろしくお願い致します

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

【10732】Re:クエリデータをaddnewでテーブルに入...
お礼  ver45  - 08/11/12(水) 13:32 -

引用なし
パスワード
   お二人ともありがとうございます。

何とか出来ました。

出来なかった理由は教えていただいた部分では無く
実行時エラー 3134  INSERT INTO ステートメントの構文エラーです。
というものが出ていて上手くいかず、こちらを調べたところ列名にSQLの予約語が入っていたので上手くいっていなかったようです。列名を変更したところ上手くいきました。

大変お世話になりました。改めてありがとうございます。
・ツリー全体表示

【10731】Re:フラグ更新について(更新クエリ?)
発言  neptune  - 08/11/11(火) 23:36 -

引用なし
パスワード
   ▼MAI さん:
それでは続けますか。?
もう進め様はないんですが。。。

私のtest用DBでは文法エラーは出ません。
前にも書いたように私はMAI さんの環境がわかりませんし、判っても
それで、解決できるかどうかはわかりません。

私の環境では、このSQLを実行は出来ません。
データ型が違うとか、ロック違反、入力規則違反が出ます。
本当の環境がわからないし、それを想像してまで原因を探るまでの根性は
ありません。

正直私なら、どうしても判らなければ、力技でこなそうかと思ってしまいます。
ADO or DAOでレコードセットを取得し、構造体にでも格納しておき、
判断しながら、レコードセットを使って変更か、SQL投げるとか。
ってな具合です。
デスクトップのmdb内での処理みたいですからどんな方法でも、
問題のない処理時間で、間違いのない結果が得られればOKです

・・・・ここまで書く気はないですから悪しからず。私は私でやってる事
ありますんで。
・ツリー全体表示

【10730】Re:フラグ更新について(更新クエリ?)
質問  MAI  - 08/11/11(火) 23:08 -

引用なし
パスワード
   ▼neptune さん:
>この程度のミスで責められても困ります。
攻めてはいません 申し訳ありません
>邪魔をしているようなので、この書き込みを持って失礼します。

言い忘れましたが

UPDATE T_受注
>SET T_受注.フラグ =
>Switch(DLookUp("出荷率","Q_出荷状況","注文NO='" & [注文NO] & "'">=100,3,DLookUp("出荷率","Q_出荷状況",
>"注文NO='" & [注文NO] & "'")>1,2,True,1)
>WHERE (((T_受注.フラグ)<>9));
で検証はしましたヨ でもエラーですね??
お願いしますよ
・ツリー全体表示

【10729】Re:フラグ更新について(更新クエリ?)
発言  neptune  - 08/11/11(火) 22:51 -

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

>と最初になっていますがね??
>どちら??
>どこが違うの? 本当は??
最初のが貼り付けミスですね。
いずれにしても、
[注文NO]&
ではエラーになります。

貼り付けミスは私のミスですが、検証、動作確認はMAI さんの責任で
行って下さい。この程度のミスは掲示板のやり取りではミスの内に入りません。
そんな事は検証してから質問するものです。
私はMAI さんのバグ取り屋ではありません。
この程度のミスで責められても困ります。

邪魔をしているようなので、この書き込みを持って失礼します。
・ツリー全体表示

【10728】Re:フラグ更新について(更新クエリ?)
質問  MAI  - 08/11/11(火) 22:39 -

引用なし
パスワード
   ▼neptune さん:
>▼MAI さん:
>すみません。矢印がずれてましたね。
>
>& [注文NO]&
>
>& [注文NO] &
>]の後のスペースです。
>これが無くてもエラーは出ます。
----------------------------------
>私の書いた操作で以下のようなSQLが出てきました。
>これで良いんですかね?検証はしてません。

>UPDATE T_受注
>SET T_受注.フラグ =
>Switch(DLookUp("出荷率","Q_出荷状況","注文NO='" & [注文NO]& "'">=100,3,DLookUp("出荷率","Q_出荷状況",
>"注文NO='" & [注文NO] & "'")>1,2,True,1)
>WHERE (((T_受注.フラグ)<>9));
と最初になっていますがね??
どちら??
どこが違うの? 本当は??
・ツリー全体表示

【10727】Re:フラグ更新について(更新クエリ?)
回答  neptune  - 08/11/11(火) 22:11 -

引用なし
パスワード
   ▼MAI さん:
すみません。矢印がずれてましたね。

& [注文NO]&

& [注文NO] &
]の後のスペースです。
これが無くてもエラーは出ます。
・ツリー全体表示

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