Access VBA質問箱 IV

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

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


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

【7507】Re:オプションボタンを選択状態にしたい
発言  小僧  - 06/3/14(火) 10:21 -

引用なし
パスワード
   ▼青首 さん:
おはようございます。

>もし、コマンドボタン:次へ移動ボタンをクリックしたとき、
>残業時間が0の場合に残業区分が選択されていたら、
>メッセージを表示するようにしたいのですが、どうもうまくいきません。

仕様としては「次へ移動ボタンをクリックしたとき」でなく、
「残業区分を指定した時」に残業時間のチェックを促す方が自然ではないでしょうか。

Private Sub 残業理由フレーム_BeforeUpdate(Cancel As Integer)
  If Me.残業理由フレーム.Value <> 0 And Me.残業時間.Value = 0 Then
    MsgBox "残業時間が0なので残業区分は選べません"
    Me.Undo
    Cancel = True
  End If
End Sub


「次へ移動ボタンをクリック時」の方が良いというのでしたら上のコードと同じ様に
「残業時間」の値と「残業区分フレーム」の値をチェックされてみて下さい。
・ツリー全体表示

【7506】Re:検索結果について
お礼  TB1  - 06/3/14(火) 10:03 -

引用なし
パスワード
   ▼まさ7251 さん:
ありがとうございます。厳しいご指摘の中に大きなヒントがありました。

>何も返答せず、質問に関して何も触れていない...
>そんな状態では、無視しているとしか言いようがありませんけど。
>回答する人(私に限ったわけではなく)は、解決するために
>質問しているのですから、何らかの返答を返すべきかと思いますよ。
>"わからないからどうすればいいのか?”でも、何もないよりマシです。

ごもっともです。まさにわからないからどうすればいいのか、といったレベルだったので今分かることをと思い的外れなことを書いてしまったようです。失礼しました。

>>>一番怪しいのは、
>>>Me.検索区分 の値がおかしいのではないかと思います。
>>>それぞれのラジオボタンの値はどうなっているのでしょうか?
>>これは、JANコード、商品名、商品分類コード
>>となっています。
>
>念のため。ラジオボタンとは、オプションボタンのことですよね?
>プロパティに、”オプション値”はありませんか?
>このような、日本語の値が入っているのですか?

ここの部分、大元のフォームにはラジオボタンが5つ、環境テーブルには5列の項目がありました。
それを、名前を変えてボタンと列の数を3つにしてやってみると3つ目の検索項目で検索できない状況でした。しかし、上記の指摘、オプション値の部分を改めて確認してみました。すると私が言っていたのは名前の部分であり、実際のオプション値は1とか2とかだったのです。それで問題の3つ目の項目を見てみると"5"となっていました。これだったのか、と気づき3と直したのですが、結果は同じ。そこで今度は環境テーブルを確認すると、改造したままの5列目が商品分類コードになっていました。要するに、1列目にJANコード、2列目に商品名、までは良かったのですが、3列、4列に大元の関係ない項目列が入っていて、5列目に商品分類コードが来ていたのです。そこで、3列目に商品分類コードが来るように移動すると、見事、検索結果が返ってきました。

自分でも把握できていないような質問にお付き合いいただきありがとうございました。ほんと丸投げに近いものだったと思います。今後は、分からないからなんとかしてください、とはっきりいいます。
これに懲りず、今後も宜しくお願いします。
・ツリー全体表示

【7505】Re:分類されているコード毎にEXCELの別シ...
発言  小僧  - 06/3/14(火) 10:00 -

引用なし
パスワード
   ▼とも さん:
おはようございます。

過去ログ

[#5671] クエリで作成したデータをエクセルへ吐き出す

を参考にされてみて下さい。


>テーブルにはあるコード順でレコードがグループ化してあります。

過去ログの方では「シート名」「セル位置」をテーブル化していますが、
コードの内容が理解できれば、特にテーブルを持たさなくても
コード毎にシートに出力できると思います。
・ツリー全体表示

【7504】Re:リスト入りフォームを閉じると値要求
お礼  Dis  - 06/3/13(月) 21:46 -

引用なし
パスワード
   種別まちがいでした
ありがとうございました。
・ツリー全体表示

【7503】Re:リスト入りフォームを閉じると値要求
回答  Dis  - 06/3/13(月) 21:45 -

引用なし
パスワード
   ご回答ありがとうございます。結局、あ行とかのコマンドボタンを作って、何とかごまかしてしまいました。すみませんでした。

ちなみに、「社名リスト」の更新後イベントなんですが、

DoCmd.OpenForm "会社名一覧", , ,"[会社名] = " & [Forms]![検索フォーム]![社名リスト] & ""
'Msgbox [Forms]![検索フォーム]![ふりがなリスト]
DoCmd.Close acForm,"検索フォーム",acSaveNo

これだけです。これまではリストボックスに全てのレコードを表示させて選んでいましたが、リストボックスを連動させて検索しやすくしようと思ったのです。
msgboxの前の'を外すと、Closeする直前までふりがなリストのコントロールの値は正常なようです。「あ」を選べばMsgboxで「あ」と表示されます。
とりあえず、Sendkeys "{ENTER}"でパラメーターに[OK]を入力したり、Close文に'をつけたりして無理から動かせていますが、前に書いたとおり、検索フォームを閉じないまま、なんども検索フォームを開く動作を繰り返していると不都合がありそうできがかりです。
・ツリー全体表示

【7502】Re:オプションボタンを選択状態にしたい
質問  青首  - 06/3/13(月) 21:19 -

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

オプションボタンについてもう少し質問があります。

もし、コマンドボタン:次へ移動ボタンをクリックしたとき、
残業時間が0の場合に残業区分が選択されていたら、
メッセージを表示するようにしたいのですが、どうもうまくいきません。

Private Sub 次へ移動ボタン_Click()

 Select Case True
    
   Case Not IsNull(Me.残業区分)
      MsgBox ("残業区分が選択されています")
   Case Else
       DoCmd.GoToRecord , , acNext
 End Select

End Sub

というコードを書いたのですが、残業区分が選択されていないのに
メッセージが表示されてしまいます。

あと、
Case Not IsNull(Me.残業区分)
    ↓
Case Me.残業区分.Value = 0

で書くと
「実行時エラー94 NULLの使い方が不正です」と表示されます。

テーブルを見ても、データ型は数値型になっているのですが、
どうも駄目みたいです。

とりあえずは、選択されていないのに表示されてしまうメッセージボックスを
正常に働かせたいのですが、ご指導お願いいたします。
  
  
・ツリー全体表示

【7501】分類されているコード毎にEXCELの別シート...
質問  とも  - 06/3/13(月) 20:21 -

引用なし
パスワード
   すみません教えてください。
テーブルにはあるコード順でレコードがグループ化してあります。

コード 氏名
1111  山田
1111  山田
2222  佐藤
2222  佐藤
2222  佐藤
3333  鈴木

このテーブルにあるデータをコード毎にExcelの別シートへ出力するコマンドボタンを作成したいのですがイベントプロシージャーの書き方がわかりません。どなたか教えてください。
・ツリー全体表示

【7500】Re:テーブルの複製について
お礼  Richard  - 06/3/13(月) 17:28 -

引用なし
パスワード
   ▼Gin_II さん:
お手数かけました。ありがとうございます。
・ツリー全体表示

【7499】Re:テーブルの複製について
回答  Gin_II  - 06/3/13(月) 17:08 -

引用なし
パスワード
   > どのような構文を使えばよいでしょうか。

TransferDatabase メソッドの StructureOnly 引数を使ってください。
・ツリー全体表示

【7498】テーブルの複製について
質問  Richard  - 06/3/13(月) 16:57 -

引用なし
パスワード
   テーブルをデータベースウィンドウ上でコピーする時、
貼り付けの設定オプションで「テーブル構造のみ(S)」という選択肢があると思います。
これをマクロ化したいのですが、どのような構文を使えばよいでしょうか。
当方で使用しているOSはWindows XPでMS-Officeのバージョンは2000です。
宜しくお願いします。
・ツリー全体表示

【7497】Re:検索結果について
発言  まさ7251  - 06/3/13(月) 16:45 -

引用なし
パスワード
   >>結局は、私の質問への返答はないってことは、
>>私の発言は無視なのですかね。
>いえいえ、聞かれていること自体が理解できていないので、結局はこういうことなのです、
>と出すしか答えようがなかったのです。決して無視したわけではないのです。恐縮です。

何も返答せず、質問に関して何も触れていない...
そんな状態では、無視しているとしか言いようがありませんけど。
回答する人(私に限ったわけではなく)は、解決するために
質問しているのですから、何らかの返答を返すべきかと思いますよ。
"わからないからどうすればいいのか?”でも、何もないよりマシです。

>>> On Error GoTo LBL_ERROR

この部分、前回の私からのコメントと同じです。
コメントにしてエラーになるのでしたら、その原因を調べて、
エラーを出ないようにするのが本来の対応です。
※ただし、エラーになるかも知れないという前提で使う場合もありますが。
 ここでは、とてもそうは思えませんので。

>>一番怪しいのは、
>>Me.検索区分 の値がおかしいのではないかと思います。
>>それぞれのラジオボタンの値はどうなっているのでしょうか?
>これは、JANコード、商品名、商品分類コード
>となっています。

念のため。ラジオボタンとは、オプションボタンのことですよね?
プロパティに、”オプション値”はありませんか?
このような、日本語の値が入っているのですか?

>恐らく指摘しようにも、なにがわからないのかわからない、といったところだと思います。

ご自分で、”なにが”わからないか、きちんと理解できていますか?
それをきっちりと伝えてもらわないと、誰もなんとも言えません。
現状では、”なにがわからないか”ということまで回答する人に聞いているようなものです。
あなたが使っているMDBがどのような物がこちらにはわかるわけもありませんので、
現状でそこまで的確にわかる人はあまり居ないかと。
そこまで回答者に求めるのでしたら、問題のある部分だけのMDBを
インターネット上にアップロードでもして、誰にでも見てもらえるようにでもした方が早いかと思います。
ただし、これは、質問の丸投げのようなものですので、あまり好まれない方法です。
見てくれるという保証はどこにもありませんので、悪しからず。

>フォームで検索をさせるとき、こういったコードは一般的なのかと
>簡単に質問してしまいましたが、環境設定テーブルを使う、なんていうのは、
何をもって一般的と言えるのかがないと思うので、一般的なんてものはないと思いますが。

>そのコードを書いた人じゃないと簡単に把握できないものなんでしょうか。
ある程度の予測がつきますが、コードだけであならが使用しているMDBの内容が
完全に把握できる人は居ないかと。

>5列あったテーブルを3列にしたら…といわれてもそれだけじゃわかんないよ、
>といった質問だったのでしょうか。
当然、そうでしょうね。
そうですから、こちらから質問を出しているのに、
返答がない上に質問だけを繰り返しているのですから、
延々と続いても何も進展していないという状況です。
・ツリー全体表示

【7496】Re:検索結果について
発言  TB1  - 06/3/13(月) 15:23 -

引用なし
パスワード
   ▼まさ7251 さん:
>結局は、私の質問への返答はないってことは、
>私の発言は無視なのですかね。

いえいえ、聞かれていること自体が理解できていないので、結局はこういうことなのです、と出すしか答えようがなかったのです。決して無視したわけではないのです。恐縮です。

>> On Error GoTo LBL_ERROR
>
>正常に動いてもいないのに、このようなエラー処理を入れていると、
>原因を調べるのは非常に困難になりますよ。
>えらーが発生しても、とりあえず何もメッセージも出ませんし。

ここも元のコードにあったものですからそのままにしているまでのことで、いいのか悪いのか分かっていないのです。ただ以前コメントアウトしては、というご意見で試したのですが、それをするとエラーが出てしまいましたのでそのまま使っています。現在、正常に検索結果はかえってくるようにはなっています。

>一番怪しいのは、
>Me.検索区分 の値がおかしいのではないかと思います。
>それぞれのラジオボタンの値はどうなっているのでしょうか?

これは、JANコード、商品名、商品分類コード
となっています。

>ご自分の使用しているコードを理解せずに使用していれば、
>当然の結果かと思いますけど。
>理解できていれば、十分”簡単”な内容ではないかと思います。

おっしゃるとおり。理解できていないが故、簡単にいきませんでした。そもそも、フォームは見た目などで変更出来ましたが、コードに関しては、なぜこういったコードになっているのか、が理解できていなく、ただテーブルの名前や値を差換えてなんとか動いている、といったところが現状です。恐らく指摘しようにも、なにがわからないのかわからない、といったところだと思います。ご指摘、痛み入ります。

フォームで検索をさせるとき、こういったコードは一般的なのかと簡単に質問してしまいましたが、環境設定テーブルを使う、なんていうのは、そのコードを書いた人じゃないと簡単に把握できないものなんでしょうか。5列あったテーブルを3列にしたら…といわれてもそれだけじゃわかんないよ、といった質問だったのでしょうか。なんとも、奥が深いです。
・ツリー全体表示

【7495】Re:チェックボックスについて
発言  小僧  - 06/3/13(月) 11:13 -

引用なし
パスワード
   ▼超初心者 さん:
こんにちは。

フォームとテーブルの関係などが当方には解りづらいので
超初心者 さんが何をされたいのかがイマイチ伝わりません。


以下が何かのヒントになれば幸いです。

フォーム上にリストボックスを配置。

名前:lstエリア
値集合ソース:SELECT エリア FROM T_購入高 GROUP BY エリア;
複数選択:標準

フォーム上にコマンドボタンを配置。
名前:実行

コマンドボタン「実行」の「クリック時」のコードに
Private Sub 実行_Click()
'要参照設定 Microsoft DAO x.x Object Library
Dim strSQL As String
Dim varItem As Variant
Dim QD As DAO.QueryDef
Dim i As Long

  If DCount("*", "MSysObjects", "Name ='Q_Temp'") > 0 Then _
    DoCmd.DeleteObject acQuery, "Q_Temp"

  For Each varItem In Me.lstエリア.ItemsSelected
    strSQL = strSQL & ",'" & Me.lstエリア.ItemData(varItem) & "'"
  Next
    
  strSQL = "SELECT エリア, Sum(購入高) AS 合計 " _
      & "FROM T_購入高 " _
      & "GROUP BY エリア " _
      & "HAVING エリア " _
      & "IN(" & Mid(strSQL, 2) & ");"
       
  Set QD = CurrentDb.CreateQueryDef("Q_Temp", strSQL)
  Set QD = Nothing
End Sub

リストボックスで選んだ項目だけ集計されるクエリ「Q_Temp」が
作成されている事を確認されてみて下さい。
・ツリー全体表示

【7494】Re:リスト入りフォームを閉じると値要求
発言  小僧  - 06/3/13(月) 10:27 -

引用なし
パスワード
   ▼Dis さん:
おはようございます。

>この時にForms![検索フォーム]![ふりがなリスト]のパラメータを要求する
>ボックスが表示されてしまうのです。


ご提示された情報からは読み取れないのですが、
検索フォームを閉じた後の処理に問題があるのではないかと思います。

検索フォームを閉じた事により「ふりがなリスト」が参照できないので
パラメータの入力が促されているのはないでしょうか。

社名リストの更新後処理で行っている事をもう少し詳しく説明頂けると
何かヒントが出てくるかもしれませんね。
・ツリー全体表示

【7493】チェックボックスについて
質問  超初心者  - 06/3/12(日) 23:10 -

引用なし
パスワード
   宜しくお願いします。
テーブル T_購入高に
項目名
エリア   購入高
日本    123450
アメリカ  123500
日本    235000
ヨーロッパ 258000
日本    158000
フォームで「エリア」をチェックボックス付きで作って、チェックある「エリア」を選択クエリの条件にして購入高の合計を抽出したいのですが上手く行きません。
例えば、日本とアメリカにチェックを付けると、クエリの抽出条件に指定出来るようにしたいと思っています。
クエリにビルドでチェックボックス名を貼り付ければ良いのか思ったのですが、無理でしょうか?
ご指導宜しくお願いします。
・ツリー全体表示

【7492】Re:[編集]→[元に戻す(U)]〜が可能な時
お礼  ひろのしま  - 06/3/11(土) 22:22 -

引用なし
パスワード
   ▼ひろのしま さん:
>▼中西 健 さん:
>> ひろのしまさんこんばんは
>> googleで「2046 元に戻す」で探すと、以下のリンクが見つかりました。
>>
>>http://www.accessclub.jp/bbs6/0004/das741.html
>>
>> 要はエラーを無視するということです。
>
>ご回答ありがとうございます。
>既に【7472】において解決しております。
>よろしくお願いします。
あ、すみません。
【7472】でなくて、【7471】と同じ質問でした。
どうもすみませんでした。
・ツリー全体表示

【7491】リスト入りフォームを閉じると値要求
質問  Dis  - 06/3/11(土) 22:21 -

引用なし
パスワード
   リストボックスで悩んでいます。
データを絞り込んだ後、フォームを閉じるとパラメータ入力を要求されるのです。

社名一覧表から取引先を検索するために検索フォームを呼び出しています。
その検索フォームには2つのリストボックスがあります。
1つ目は「ふりがなリスト」で、「あ」「か」「さ」「た」「な」データを持つテーブルを値集合ソースにあてて、表示させています。
2つ目は「社名リスト」で「ふりがなりスト」から選択した行(あ、か、など)から、その行の文字を頭文字に持つ会社名のリストがでるようにしています。
値集合ソースとして別途作成したクエリーをあてています。このクエリーは「社名」と「ふりがな」フィールドを選択するクエリーで、「ふりがな」の抽出条件に「ふりがなリスト」のコントロールをあてています。
 また、更新後イベントには、選択された社名を持つレコードを表示し、検索フォームを閉じるようにコードを書いています。

検索フォームを開くと「ふりがなリスト」に、「あ」「か」「さ」「た」「な」が表示され、その内の1つをクリックすると、「社名リスト」に正常に表示がなされます。そして任意の社名を選択すると、その社名を含むレコードが正常に表示されます。この時にForms![検索フォーム]![ふりがなリスト]のパラメータを要求するボックスが表示されてしまうのです。
 ちなみに「社名リスト」の更新後イベントに記述したコードのうち、フォームを閉じる部分(DoCmd.Close acForm,"検索フォーム",acSaveNo)を消してみるとこのパラメータ要求はあらわれません。
逆に、イベントにDoCmd.Close〜だけを記述しても、パラメータ要求は現れます。
 DoCmd.Close〜を消去したままでも十分に機能するのですが、検索フォームを閉じることなく何度も開いていると不都合がありそうなので気がかりです。
どうかおたすけください。
・ツリー全体表示

【7490】Re:[編集]→[元に戻す(U)]〜が可能な時
回答  ひろのしま  - 06/3/11(土) 22:21 -

引用なし
パスワード
   ▼中西 健 さん:
> ひろのしまさんこんばんは
> googleで「2046 元に戻す」で探すと、以下のリンクが見つかりました。
>
>http://www.accessclub.jp/bbs6/0004/das741.html
>
> 要はエラーを無視するということです。

ご回答ありがとうございます。
既に【7472】において解決しております。
よろしくお願いします。
・ツリー全体表示

【7489】Re:クエリの重複情報をクエリに出力したい
回答  Gin_II  - 06/3/11(土) 21:40 -

引用なし
パスワード
   >DoCmd.OpenQuery "重複結果"
>どこに入れるでしょうか?

>VBAで、どのように使うのでしょうか?
これの回答をもらっていませんけど。
・ツリー全体表示

【7488】Re:[編集]→[元に戻す(U)]〜が可能な時
回答  中西 健  - 06/3/11(土) 21:32 -

引用なし
パスワード
    ひろのしまさんこんばんは
 googleで「2046 元に戻す」で探すと、以下のリンクが見つかりました。

http://www.accessclub.jp/bbs6/0004/das741.html

 要はエラーを無視するということです。
・ツリー全体表示

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