Access VBA質問箱 IV

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

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


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

【9100】Re:Accessのバージョン情報の取得
回答  小僧  - 07/2/8(木) 11:06 -

引用なし
パスワード
   ▼ひろのしま さん:
こんにちは。
>Access2000以降で、同じロジックでバージョンを取得する方法を模索しています。

Sub Accessのバージョン取得()
  Debug.Print SysCmd(acSysCmdAccessVer)
  Debug.Print Application.Version
End Sub

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

【9099】Re:クエリ作成後のフィールド表示書式
回答  小僧  - 07/2/8(木) 11:01 -

引用なし
パスワード
   ▼CHIKO さん:
こんにちは。
ADO ならびに ADOX を色々見ていたのですが当方の知識ではできなさそうでした。
代わりに DAO を使ったコードを提示してみます。

Sub DAOを使って()
Const QName = "INQRY"
Dim SQLST As String
Dim DB As DAO.Database
Dim QD As DAO.QueryDef
Dim FLD As DAO.Field
Dim Prp As DAO.Property
  
  On Error Resume Next
    DoCmd.DeleteObject acQuery, QName
  On Error GoTo 0
  
  SQLST = "SELECT A, Sum(B) AS 合計 FROM CTab GROUP BY A;"
  
  Set DB = CurrentDb
  Set QD = DB.CreateQueryDef(QName, SQLST)
  Set FLD = QD.Fields("合計")
  
  Set Prp = FLD.CreateProperty("Format", 10, "Standard")
    FLD.Properties.Append Prp
  
  Set Prp = FLD.CreateProperty("DecimalPlaces", 2, 0)
    FLD.Properties.Append Prp
  
  Set Prp = Nothing
  Set FLD = Nothing
  QD.Close: Set QD = Nothing
  DB.Close: Set DB = Nothing
    
End Sub


さて、ここからが本題なのですが、
クエリに対して書式設定をする必要があるのでしょうか。

Accessにおいてテーブル(クエリ)はあくまでデータの入れ物であって
ユーザに見せるものではないですよね。

フォームやレポートの書式を設定してあげれば
テーブル 及び クエリ部に特別な事を行う必要はないと思うのですが…。
・ツリー全体表示

【9098】Accessのバージョン情報の取得
質問  ひろのしま E-MAIL  - 07/2/8(木) 10:14 -

引用なし
パスワード
   恐れ入りますが、質問します。
Access2000以降で、同じロジックでバージョンを取得する方法を模索しています。

Dim strVersion as string
strVersion=CurrentProject.Connection.ConnectionString (Access2003で確認)
If Instr(strVersion,"11.0") Then
  MsgBox "Access2003",vbInformation
End If
で、11.0という文字を検索で取得すれば出来るかもしれませんが、
他のごく簡単な方法で取得することは可能でしょうか?
よろしくお願いします。
・ツリー全体表示

【9097】入力規制 (リスト)
質問  err  - 07/2/7(水) 15:32 -

引用なし
パスワード
   Excel メニューのデータ>データの入力規則>入力値の種類を「リスト」にして
「元の値」を設定する場合,同一Sheet内でないと,範囲指定できません。
同一Sheetでは都合が悪いので,
別sheetにリストを作成しておき(数行から数十行),そのリストの文字列を全て足して
VBAで変数Lpに代入しました。

Lp=",東京A,東京B,大阪A,大阪B,新潟A,・・・・・・・・・・・・・・・・・・・・・・" のように。

それを,最下行のようなコードを作成し処理しました。
しかし,Lpの文字数が少なければ問題なく動作するのですが
文字数が200文字を少し超えると,それ以降はリストとして表示されなくなります。
X=Len(Lp) では,Xは全て足された文字列数(770文字)となっており
Lpには代入されているようです。
全てのリストを表示するための解決方法を教えていただけませんか?

      With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:=Lp
      End With
・ツリー全体表示

【9096】クエリ作成後のフィールド表示書式
質問  CHIKO  - 07/2/6(火) 16:52 -

引用なし
パスワード
   いつも拝見させていただいています。
今回どうしても行きづまってしまい、お知恵を貸してください。

コード上で作成したクエリのフィールドのプロパティを変更したいのです。

以下のようなコード(実際はもっと複雑ですが集計クエリです)を書いて、
INQRYクエリを作成することができました。

'*********************************
Dim Cmd As New ADODB.Command
Dim SQLST as String

SQLST="SELECT A, Sum(B) AS 合計 FROM CTab GROUP BY A;"

'INQRYクエリーの作成
Cmd.CommandText = SQLST
Cat.Views.Append "INQRY", Cmd

'************************************

作成したクエリは、手ではデザインビューからプロパティを変更し、
表示書式を書式=”標準”、小数点以下=0 のように変更することができます。

なんとかコード上で合計フィールドの書式を設定できないでしょうか?
SQLST上でFormat関数を使用することも考えましたが、
なんとか値を切り捨てることなく、見た目の表示を変更したいのです。
よろしくお願いします。
・ツリー全体表示

【9095】Re:Access フォーム上のオプションボタン...
お礼  ななみママ  - 07/2/6(火) 10:26 -

引用なし
パスワード
   ▼小僧 さん:
おはようございます。
昨日は色々とありがとうございました。
おかげで、うまくいきました!
私の勘違いで、オプション値の設定が間違えていました…
(どうやら理解していなかったようです)
長い間付き合っていただいて、本当にすみませんm(__)m
またよろしくお願いします。
・ツリー全体表示

【9094】Re:Access フォーム上のオプションボタン...
発言  小僧  - 07/2/5(月) 16:35 -

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

まずはフォームの方がうまくいっているかの再確認です。
フレームの方の更新後処理に

Private Sub フレーム46_AfterUpdate()
  MsgBox Me.フレーム46.Value
End Sub

の様なVBAの記述をし、期待通りの値が返って来るかを確認されてみて下さい。


また、今回はこちらのオプションボタンについての検証ですので、
他の要因になりそうなものは全部外してチェックしてみましょう。

SELECT お客様相談.整理No, お客様相談.対応済
FROM お客様相談
WHERE (((お客様相談.対応済)<>[Forms]![☆初期画面]![フレーム46]));
・ツリー全体表示

【9093】Re:Access フォーム上のオプションボタン...
質問  ななみママ  - 07/2/5(月) 15:43 -

引用なし
パスワード
   ▼小僧 さん:
何度もありがとうございます。
> 確認なのですが、先にオプショングループを作ったのちに
> 新規のオプションボタンを配置していますでしょうか。

フォーム上で、オプショングループを作り、オプショングループウィザード
に従って、3つのオプションボタンを配置しました。

>
> 「未対応」「対応済」「全件」の 1 つを選ぶと
> 他のオプションボタンは選べない状態になっていれば
> こちらと同じ状況なのですが…。

1つを選ぶと、他は選べない状態になっています…。
・ツリー全体表示

【9092】Re:Access フォーム上のオプションボタン...
発言  小僧  - 07/2/5(月) 15:27 -

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

こちらだとうまく行く為、
フォームをチェックしてみましょう。

確認なのですが、先にオプショングループを作ったのちに
新規のオプションボタンを配置していますでしょうか。

「未対応」「対応済」「全件」の 1 つを選ぶと
他のオプションボタンは選べない状態になっていれば
こちらと同じ状況なのですが…。
・ツリー全体表示

【9091】Re:Access フォーム上のオプションボタン...
質問  ななみママ  - 07/2/5(月) 14:58 -

引用なし
パスワード
   ▼小僧 さん:
大変お世話かけます。。。

SELECT お客様相談.整理NO, お客様相談.受付日, お客様相談.受付時間, お客様相談.受付者, お客様相談.お客様氏名, お客様相談.お客様ふりがな, お客様相談.お客様住所, お客様相談.お客様電話番号, お客様相談.管理部署, お客様相談.内容分類, お客様相談.お客様の声, お客様相談.対応日, お客様相談.対応時間, お客様相談.依頼者, お客様相談.対応者, お客様相談.確認者, お客様相談.対応内容, お客様相談.対応済
FROM お客様相談
WHERE (((お客様相談.整理NO) Like [Forms]![☆初期画面]![受付整理NO] & "*") AND ((お客様相談.受付日) Between NZ([Forms]![☆初期画面]![期間指定開始],#1/1/1900#) And NZ([Forms]![☆初期画面]![期間指定終了],#12/31/2050#)) AND ((お客様相談.管理部署) Like [Forms]![☆初期画面]![コンボ15] & "*") AND ((お客様相談.内容分類) Like [Forms]![☆初期画面]![コンボ17] & "*") AND ((お客様相談.対応済)<>[Forms]![☆初期画面]![フレーム46]))
ORDER BY お客様相談.受付日;

よろしくお願い致しますm(__)m
・ツリー全体表示

【9090】Re:Access フォーム上のオプションボタン...
発言  小僧  - 07/2/5(月) 14:48 -

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

>やっぱり
>...
>となってしまいます。

こちらのテストではうまく行っているのですが…どこが違うのでしょうね…。

差し支えなければで結構なのですが
クエリをSQLビューで開いて、表示されているSQLをご提示して頂けますでしょうか。
何かヒントになるものがあるかもしれません。
・ツリー全体表示

【9089】Re:Access フォーム上のオプションボタン...
質問  ななみママ  - 07/2/5(月) 14:36 -

引用なし
パスワード
   ▼小僧 さん:
度々すみません(^^;
理解しました!
しかし、小僧さんから教えていただいたとおり、やってみたのですが、
やっぱり
「未対応」オプションボタン選択時、対応済レコードが表示
「対応済」オプションボタン選択時、全件表示
「全件」オプションボタン選択時、全件表示
となってしまいます。

よろしくお願いしますm(__)m
・ツリー全体表示

【9088】Re:Access フォーム上のオプションボタン...
回答  小僧  - 07/2/5(月) 14:02 -

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

>> クエリの抽出条件
>> <>[forms]![☆初期画面]![フレーム名]

ポイントは「=」でなく「<>」を使っている所です。


>「未対応」オプションボタンのオプション値 ⇒ 0 
>「対応済」オプションボタンのオプション値 ⇒ -1
>となりますよね?!
>(私、理解してないでしょうか??)

上記の様ですと、全件表示が出来なくなってしまう為、

未対応 の場合は 対応済 である「0」以外を抽出
対応済 の場合は 未対応 である「1」以外を抽出
全件  の場合は 存在しない  「2」以外を抽出


の様にする事で3つのパターンを実現できる様に考えてみました。
・ツリー全体表示

【9087】Re:Access フォーム上のオプションボタン...
質問  ななみママ  - 07/2/5(月) 13:51 -

引用なし
パスワード
   ▼小僧 さん:
返信どうもありがとうございます!!

>「未対応」オプションボタンのオプション値 ⇒ -1  
>「対応済」オプションボタンのオプション値 ⇒  0  
>「全件」 オプションボタンのオプション値 ⇒  2 (-1,0以外)

「未対応」オプションボタンのオプション値 ⇒ 0    …☆
 「対応済」オプションボタンのオプション値 ⇒ -1   …☆
となりますよね?!
(私、理解してないでしょうか??)

> クエリの抽出条件
> <>[forms]![☆初期画面]![フレーム名]
>
> という様な感じで実現できると思われます。

やってみましたが、
「未対応」オプションボタン=Trueのとき、対応済レコードが表示
「対応済」オプションボタン=Trueのとき、全件表示
「全件」オプションボタン=Trueのとき、全件表示
されてしまいました。

もし私の上記、「…☆」で合っていれば、
絶対値(オプション値)=フレーム値
となりますが、絶対値じゃ、できませんよね(^-^;
返信、よろしくお願いしますm(__)m
・ツリー全体表示

【9086】Re:Access フォーム上のオプションボタン...
回答  小僧  - 07/2/5(月) 11:03 -

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

>フォーム上に、「未対応」、「対応済」、「全件」という3つのオプションボタンを
>配置しています。

オプションボタンだけでなく、オプショングループも配置していますか?
今回の場合「未対応」「対応済」「全件」を複数選ぶ場合はなさそうですので
まずはオプショングループを配置し、その中にオプションボタンを配置して下さい。

次にオプション値の設定をします。
こちらの値を決める事により、オプショングループ(以下フレームと呼びます)
の値が決まってきます。

「未対応」のオプションボタンのオプション値を0
「対応済」のオプションボタンのオプション値を1
「全件」のオプションボタンのオプション値を2

とすると、

「未対応」のボタンが押されている時のフレームの値は0、
「対応済」のボタンが押されている時のフレームの値は1、
「全件」のボタンが押されている時のフレームの値は2

となります。


さて、ここからが問題なのですが
Yes/No型のフィールドが「Yes」の場合、数値で表現すると -1 という値が
「No」の場合は 0 という値が格納されています。

>  「未対応」オプションボタン=Trueの場合、Noのレコードを表示
>  「対応済」オプションボタン=Trueの場合、Yesのレコードを表示
>  「全件」オプションボタン=Trueの場合、全てのレコードを表示

という事は

>>  「未対応」オプションボタン=Trueの場合、0 のレコードを表示
>>  「対応済」オプションボタン=Trueの場合、-1 のレコードを表示
>>  「全件」オプションボタン=Trueの場合、全てのレコードを表示

となり、更に応用すると

>>>  「未対応」オプションボタン=Trueの場合、-1 以外 のレコードを表示
>>>  「対応済」オプションボタン=Trueの場合、 0 以外 のレコードを表示
>>>  「全件」オプションボタン=Trueの場合、全てのレコードを表示

となります。

以上をふまえて(ややこしいですよね)

「未対応」オプションボタンのオプション値 ⇒ -1
「対応済」オプションボタンのオプション値 ⇒  0
「全件」 オプションボタンのオプション値 ⇒  2 (-1,0以外)

クエリの抽出条件
<>[forms]![☆初期画面]![フレーム名]

という様な感じで実現できると思われます。
・ツリー全体表示

【9085】Re:郵便番号の編集について
回答  のの  - 07/2/4(日) 18:10 -

引用なし
パスワード
   こんにちは。
早速ですが、レポートの郵便番号プロパティの定型入力に
「000-0000」と入力してみてください。

▼中直 さん:
>お忙しいところを申し訳ありませんが
>よろしくお願いします。
>
>宛名ラベルウィザードを使用してラベルを
>印刷してみたのですが郵便番号が期待通り
>に印刷されません。
>999-9999と印刷したいのですが、9999999と
>印刷されてしまいます。
>テーブルの郵便番号(住所入力支援)の内容
>を見ますと999-9999と表示されています。
>
>よろしくお願い致します。
・ツリー全体表示

【9084】Access フォーム上のオプションボタンか...
質問  ななみママ  - 07/2/3(土) 12:20 -

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

フォーム上に、「未対応」、「対応済」、「全件」という3つのオプションボタンを
配置しています。
Yes/NO型のフィールドから、
  「未対応」オプションボタン=Trueの場合、Noのレコードを表示
  「対応済」オプションボタン=Trueの場合、Yesのレコードを表示
  「全件」オプションボタン=Trueの場合、全てのレコードを表示
するためには、クエリの抽出条件をどう設定したらよいのでしょうか?
どなたか教えてください!!

ちなみに今は、頭を悩ませた結果、2つのクエリを作り、
  1つには、NZ([Forms]![☆初期画面]![オプション40],No) →「未対応」、「対応済」
  1つには、何も設定しない → 「全件」
としています。
・ツリー全体表示

【9083】郵便番号の編集について
質問  中直  - 07/2/3(土) 10:08 -

引用なし
パスワード
   お忙しいところを申し訳ありませんが
よろしくお願いします。

宛名ラベルウィザードを使用してラベルを
印刷してみたのですが郵便番号が期待通り
に印刷されません。
999-9999と印刷したいのですが、9999999と
印刷されてしまいます。
テーブルの郵便番号(住所入力支援)の内容
を見ますと999-9999と表示されています。

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

【9082】Re:集計方法について
お礼  あおぎん  - 07/2/2(金) 16:12 -

引用なし
パスワード
   ▼小僧 さん:
回答ありがとうございます。

>クロス集計をする際に1月分の給食費を4500円にされたいのは解るのですが、
>請求日については 1/31、2/16 どちらを表示させたいのでしょうか。

集計したときに、誤請求等で追加した分を別に表示できれば、見やすいなあと考えていたので、

学校コード 生徒名 ・・ 12_月分 12_月分請求日 1_月分  1_月分請求日 ・・
10     A   ・・ 4800   2006/12/31   5000    2007/01/31
10     A                    -500   2007/02/16

こんな風にどちらも表示できたらなと思ったのです。
1〜12月で基本は1人ひと月につき1データなので、素人考えで、2つ以上ある場合、抽出して2行め(?)に集計する、といったことができるのかなと思いまして。

トータルの金額が表示できれば大満足なので、ご提示の方法でやってみます。
sumを使えばいいのですね。
説明がわかりやすく、よく理解できました。

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

【9081】Re:Accessタイトルバーのxボタン無効化
お礼  かめ  - 07/2/2(金) 11:15 -

引用なし
パスワード
   ▼雅 さん:
>こんにちわ。雅です。
>
>参考になりますか?
>miyabi.la.coocan.jp/technic/index.php?ID=1&Category=1&Topic=5
>
>でわ。

雅さんありがとうございました。

私はVBA初心者で、APIの知識がありませんので

APIの定義場所とか・・・

無理でした。
・ツリー全体表示

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