Access VBA質問箱 IV

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

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


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

【8859】Re:集計の仕方を教えてください
回答  Gin_II  - 06/11/29(水) 17:26 -

引用なし
パスワード
   > 作成したクエリを保存しようとするとエラーメッセージが出て
> 強制終了してしまいます。

エラーメッセージは提示しましょう ^^;


一度、保存したりすると、

> SELECT T.希望商品, COUNT(T.希望商品) AS 件数
> FROM (SELECT 希望商品1 AS 希望商品 FROM T_アンケート
>    UNION ALL
>    SELECT 希望商品2 FROM T_アンケート
>    UNION ALL
>    SELECT 希望商品3 FROM T_アンケート
>    UNION ALL
>    SELECT 希望商品4 FROM T_アンケート
>    ) AS T
> GROUP BY T.希望商品

SELECT T.希望商品, COUNT(T.希望商品) AS 件数
FROM [SELECT 希望商品1 AS 希望商品 FROM T_アンケート
   UNION ALL
   SELECT 希望商品2 FROM T_アンケート
   UNION ALL
   SELECT 希望商品3 FROM T_アンケート
   UNION ALL
   SELECT 希望商品4 FROM T_アンケート
   ]. AS T
GROUP BY T.希望商品

のように、FROM 文の中が、() から []. のように変わったりします。
なので、どこかを変更した場合には、() の部分もあわせて確認してください。
・ツリー全体表示

【8858】Re:集計の仕方を教えてください
質問  M  - 06/11/29(水) 17:16 -

引用なし
パスワード
   たびたび申し訳ありません。
作成したクエリを保存しようとするとエラーメッセージが出て
強制終了してしまいます。
何か解決方法はありますでしょうか。
お知恵をお貸しいただきたくよろしくお願いいたします。
・ツリー全体表示

【8857】Re:集計の仕方を教えてください
お礼  M  - 06/11/29(水) 16:35 -

引用なし
パスワード
   できました!
どうもありがとうございました。
もっと勉強しようと思います。
本当に助かりました。ありがとうございます!
・ツリー全体表示

【8856】Re:コマンドボタンのイベントについて
お礼  ぷー  - 06/11/29(水) 15:35 -

引用なし
パスワード
   ▼Gin_II さん:
>ここらへんも、単にアクションクエリ(削除クエリ・追加クエリ)を
>実行しているだけであれば、
>
>DoCmd.OpenQuery "クエリ名"
>のようにすることができます。

自己流なので、教えていだだき本当に助かります。
いままで無駄な事をしていたのですね。
ありがとうございました。
これからもよろしく御願いいたします。
・ツリー全体表示

【8855】Re:コマンドボタンのイベントについて
回答  Gin_II  - 06/11/29(水) 15:02 -

引用なし
パスワード
   >マクロを作らずに出来るんですね。
>まだまだ、勉強不足ですね。大変勉強になりました。

ちなみに、

>   DoCmd.RunMacro "MD0150直送仕入取込.WK削除"
>   DoCmd.RunMacro "MD0150直送仕入取込.WK明細作成"

ここらへんも、単にアクションクエリ(削除クエリ・追加クエリ)を
実行しているだけであれば、

DoCmd.OpenQuery "クエリ名"
のようにすることができます。
・ツリー全体表示

【8854】Re:集計の仕方を教えてください
回答  Gin_II  - 06/11/29(水) 14:59 -

引用なし
パスワード
   > ID    希望商品            
> 1    A    B    C    D
> 2    B    C    D    E
> 3    C    D    E    F
> 4    D    E    F    G
> 5    A    C    E    G
> 6    C    E    F    H

テーブル名:T_アンケート
 フィールド名:ID
        希望商品1
        希望商品2
        希望商品3
        希望商品4

だとして、クエリの新規作成⇒テーブルの表示の後に、
「表示」⇒「SQLビュー」で、以下のようなSQL文を入れてみてください。


SELECT T.希望商品, COUNT(T.希望商品) AS 件数
FROM (SELECT 希望商品1 AS 希望商品 FROM T_アンケート
   UNION ALL
   SELECT 希望商品2 FROM T_アンケート
   UNION ALL
   SELECT 希望商品3 FROM T_アンケート
   UNION ALL
   SELECT 希望商品4 FROM T_アンケート
   ) AS T
GROUP BY T.希望商品

で、
希望商品    件数
A    2
B    2
C    5
D    4
E    5
F    3
G    2
H    1

のようになります。
・ツリー全体表示

【8853】Re:コマンドボタンのイベントについて
お礼  ぷー  - 06/11/29(水) 14:46 -

引用なし
パスワード
   ▼Gin_II さん:
>Forms("フォーム名").Requery
>を、最後に入れたらどうなりますか?

Forms("フォーム名").Requeryを何度かためしてみた覚えがあったのですが
なぜかGin_IIさんにお答えいただいてから再度やってみたら上手くできました。
きっと違うことをやっていたのですね、ありがとうございました。

>ちなみに、関係はありませんが、
>
>> DoCmd.RunMacro ("メッセージの設定マクロ.オフ")
>
>DoCmd.SetWarnings False
>とかでいいのでは?

マクロを作らずに出来るんですね。
まだまだ、勉強不足ですね。大変勉強になりました。
本当にありがとうございました。
・ツリー全体表示

【8852】Re:集計の仕方を教えてください
質問  M  - 06/11/29(水) 13:05 -

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

どうもありがとうございました。

>1つの希望商品フィールドの中に、複数の商品名が存在しているのでしょうか?
>それとも、希望商品1・希望商品2とかのように、複数のフィールドとして
>あるのでしょうか?
>
>後者であれば、ユニオンクエリを使ってみてください。

後者です。
初心者なものでよくわからないのですが、具体的にどのようにすればいいか
教えていただけますでしょうか。
ユニオンクエリはテーブルの連結に使ったことがあるだけで、全く見当がつきません。
申し訳ありませんがどうぞよろしくお願いいたします。
・ツリー全体表示

【8851】Re:条件式の書き方
回答  飛ばない豚  - 06/11/29(水) 12:58 -

引用なし
パスワード
   ▼あおぎん さん:
>null値でないという意味で、isnotnull(me!書込用フリガナ)
>というような記述方法もありですか?

Not IsNull(me!書込用フリガナ)

で良いです。
・ツリー全体表示

【8850】Re:条件式の書き方
質問  あおぎん  - 06/11/29(水) 10:58 -

引用なし
パスワード
   ▼飛ばない豚 さん:
おはようございます。
回答ありがとうございました。
ご提示の方法でできました!
ありがとうございました。

あと一つ質問させてください。

同じように、
費目が"学1"等であった場合でフリガナが入力されていたら、
注意を促すメッセージを表示させたいのです。

下のように書いても動いたのですが、
null値でないという意味で、isnotnull(me!書込用フリガナ)
というような記述方法もありですか?
どこかで見たので使ってみたのですが、エラーになります。
もしご存知でしたら教えてください。

If Me!書込用費目選択 = "学1" Or Me!書込用費目選択 = "学2" Or _
  Me!書込用費目選択 = "学3" Or Me!書込用費目選択 = "通学" Or _
  Me!書込用費目選択 = "新入学" Or Me!書込用費目選択 = "修学旅行" Then
   If Me.書込用フリガナ Like "*" Then
   MsgBox "生徒が指定されていますがいいですか。", vbOKOnly, "確認"
   Me!書込用フリガナ.SetFocus    
   End If
End If
・ツリー全体表示

【8849】Re:集計の仕方を教えてください
回答  Gin_II  - 06/11/29(水) 8:24 -

引用なし
パスワード
   > ID    希望商品            
> 1    A    B    C    D
> 2    B    C    D    E
> 3    C    D    E    F
> 4    D    E    F    G
> 5    A    C    E    G
> 6    C    E    F    H

1つの希望商品フィールドの中に、複数の商品名が存在しているのでしょうか?
それとも、希望商品1・希望商品2とかのように、複数のフィールドとして
あるのでしょうか?

後者であれば、ユニオンクエリを使ってみてください。
・ツリー全体表示

【8848】Re:各クラスモジュール共通の定数について
お礼  ぼっこ  - 06/11/28(火) 18:50 -

引用なし
パスワード
   ▼飛ばない豚 さん:

すいません、ロジックのコーディングミスでした。
ごめんなさい。

飛ばない豚さんの記述通りで、問題ありませんでした。

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

【8847】集計の仕方を教えてください
質問  M  - 06/11/28(火) 18:32 -

引用なし
パスワード
   申し訳ありませんが、お知恵を貸してください。
以下のようなテーブルがあります。

ID    希望商品            
1    A    B    C    D
2    B    C    D    E
3    C    D    E    F
4    D    E    F    G
5    A    C    E    G
6    C    E    F    H
(続く)

出したい結果
A 2件
B 2件
C 5件
D 4件
E ・
F ・・

ただしA〜Hは固定ではなく無数にあり、ランダムにでてきます。
順位もありません。

テーブルの作り方に問題があるのかもしれませんが、
現状で一番楽に結果が得られる方法を教えていただけますでしょうか。
よろしくお願いいたします。
・ツリー全体表示

【8846】Re:各クラスモジュール共通の定数について
発言  ぼっこ  - 06/11/28(火) 18:17 -

引用なし
パスワード
   ▼飛ばない豚 さん:

やってみましたが、各クラスでこの定数を使うと
色を認識せず、全て黒(0)の表示になってしまいます。(泣)
・ツリー全体表示

【8845】Re:オブジョクトが必要って・・。
発言  超初心者  - 06/11/28(火) 17:34 -

引用なし
パスワード
   ▼初心者 さん:

Fname や objXL その他いくつかの変数宣言が無いのは端折ってるから?
としておいて、

私のあやふやな記憶によると、GetOpenFilenameはエクセルのメソッド
だったかと思います。

エクセルへの参照設定が必要と思いますが、設定されていますか?

Accessのバージョンが上がると使えるのかもしれませんが、
私のAcc2000では(参照設定無しでは)使えません。

確認してみてください。
・ツリー全体表示

【8844】Re:条件式の書き方
回答  飛ばない豚  - 06/11/28(火) 17:05 -

引用なし
パスワード
   ▼あおぎん さん:
> If Me.書込用費目選択 = "通学随時" Or 〜〜
>   MsgBox "生徒名を入力してください。", vbOKOnly, "確認"
>   Me!書込用フリガナ.SetFocus
>   Exit Sub
> End If

 If Me.書込用費目選択 = "通学随時" Or _
   Me.書込用費目選択 = "新入学随時" Or _
   Me.書込用費目選択 = "修学旅行随時" Then
   If IsNull(Me.書込用フリガナ) Then
     MsgBox "生徒名を入力してください。", vbOKOnly, "確認"
     Me!書込用フリガナ.SetFocus
     Exit Sub
   End If
 End If

としてみて下さい。(^・ω・^)
・ツリー全体表示

【8843】Re:各クラスモジュール共通の定数について
回答  飛ばない豚  - 06/11/28(火) 16:41 -

引用なし
パスワード
   ▼ぼっこ さん:
>  
>   Const color_Gry = 12632256
>   Const color_Blk = 0
>   Const color_Red = 255
>

Public Const color_Gry = 12632256
Public Const color_Blk = 0
Public Const color_Red = 255

としてみて下さい。
・ツリー全体表示

【8842】オブジョクトが必要って・・。
質問  初心者  - 06/11/28(火) 16:17 -

引用なし
パスワード
   以下のような感じで複数のエクセルファイルの指定したシートの指定した
範囲を原価構成というテーブルにインポートしようとしています。
しかしオブジェクトが必要です。
とFname = objXL.GetOpenFilename("すべてのファイル(*.*),*.*", , , , True)
この部分でエラーが出てしまいます。
どんなコードを書けばいいのでしょうか・・?

初心者なので結構適当になっています。
こうした方がいいという指摘もお願いします。m(__)m

Public Sub excelimport()

  Dim objFso As Object
  Dim objDir As Object
  Dim objFile As Object
  Dim strSql As String
  Dim strDir As String

  strDir = "\\Shiob030\共有\bbc\03.L.C.kaigai\yyy\07SS\zzz"
  Set objFso = CreateObject("Scripting.FileSystemObject")
 
  If objFso.folderexists(strDir) = False Then
    MsgBox strDir & " フォルダは見つかりません"
    Set objFso = Nothing
    Exit Sub
  End If
 
  Set objDir = objFso.getfolder(strDir)
 
  If objDir.Files.Count = 0 Then
    MsgBox "ファイルが無いよ"
    Set objDir = Nothing: Set objFso = Nothing
    Exit Sub
  End If
 
  Select Case MsgBox("今までのレコードを消しますか?", vbYesNoCancel + vbDefaultButton3)
    Case vbYes
      CurrentDb.Execute "delete * from 原価構成"
    Case vbNo
  
    Case vbCancel
      Set objDir = Nothing: Set objFso = Nothing
      Exit Sub
  End Select

Fname = objXL.GetOpenFilename("すべてのファイル(*.*),*.*", , , , True)

  'ファイル名の配列を取得
   Filsu = UBound(Fname)
  
   For i = 1 To Filsu
    
    DoCmd.TransferSpreadsheet , acSpreadsheetTypeExcel9, "原価構成", Fname(i), True, "sheet2!A1:ag5000"
      
   Next i
  
End Sub
・ツリー全体表示

【8841】条件式の書き方
質問  あおぎん  - 06/11/28(火) 16:06 -

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

あるフォームから追加クエリを実行する際、
入力漏れがないかチェックを行うため、
下のようなコードを書いています。

テキスト書込用費目選択が、”通学随時”か”新入学随時”か”修学旅行随時”のときに、テキスト書込用フリガナの入力が必須であるため、空欄の場合入力を促すメッセージが出るようにしたいのですが・・。

下の記述だと、書込用フリガナが空欄の場合、入力を促すメッセージが出るのですが、
フリガナを入力した後にもメッセージが出て次へ進めません。
And やorの使い方がおかしいのかなと思いますが、どこを修正したらよいのかよくわかりません。

解決方法をよろしくお願いします。

(Win2000 Access2000)

Private Sub コマンド52_Click()
On Error GoTo Err_コマンド52_Click
  If InputCheck() <> 0 Then
    MsgBox "入力されていない項目があります。", vbOKOnly, "入力もれ"
    Exit Sub
  End If
  
  If Me.書込用費目選択 = "通学随時" Or Me.書込用費目選択 = "新入学随時" Or Me.書込用費目選択 = "修学旅行随時" And IsNull(Me.書込用フリガナ) Then
    MsgBox "生徒名を入力してください。", vbOKOnly, "確認"
    Me!書込用フリガナ.SetFocus
    Exit Sub
  End If

  Dim stDocName As String

  stDocName = "Q_T_給付予定への追加クエリ"
  DoCmd.OpenQuery stDocName, acNormal, acEdit

Exit_コマンド52_Click:
  Exit Sub

Err_コマンド52_Click:
  MsgBox Err.Description
  Resume Exit_コマンド52_Click
  
End Sub
――――――――――――――――――――――
Private Function InputCheck() As Integer
  '入力もれがないかをチェックします。
  '入力もれがあったときは0以外の数値を返します。
  Dim ans As Integer
  
  ans = 0
  If IsNull(Me.フレーム89) Then
    ans = -1
  End If
  If IsNull(Me.振込年月日) Then
    ans = -1
  End If
  If IsNull(Me.書込用費目選択) Then
    ans = -1
  End If
    
  InputCheck = ans
End Function
・ツリー全体表示

【8840】Re:各クラスモジュール共通の定数について
発言  ぼっこ  - 06/11/28(火) 15:54 -

引用なし
パスワード
   ▼飛ばない豚 さん:

返信ありがとうございます。
抜粋ですが、以下のように記述しました。

初心者の為、基本がわかってないです。
よろしくお願いします。


Option Compare Database
  
  Const color_Gry = 12632256
  Const color_Blk = 0
  Const color_Red = 255

Public Function F_Login(name As String, pwd As String, Optional autho As String) As Integer
 :
 :
 :
End Function
・ツリー全体表示

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