Microsoft Access 掲示板

6,622 件中 4,361 から 4,400 までを表示しています。
2

早速のご回答ありがとうございます。
試す前に再度質問してしまい申し訳ないのですが、
この、Sub SetFilter()を使えば

①例えば項目を先に選択した状態で、結果を表示した状態で内外を選択しても有効でしょうか?
②実際はもっと選択肢が多い状態ですが、教えていただいた内容で適当な順番で選択肢分増やしていけば大丈夫でしょうか?

以上よろしくお願いいたします。

1

「別のコンボボックス」の名前を「cbo項目検索」、対象フィールド名を「項目」と仮定して。

Sub SetFilter()
   Dim stFilter As String
   
   If Me.cbo内外検索 <> "" Then
       stFilter = " And [内外]=[cbo内外検索]"
   End If
   If Me.cbo項目検索 <> "" Then
       stFilter = stFilter & " And [項目]=[cbo項目検索]"
   End If

   DoCmd.ApplyFilter , Mid(strFilter, 6)
End Sub

Private Sub cbo内外検索_AfterUpdate()
    SetFilter
End Sub

Private Sub cbo項目検索_AfterUpdate()
    SetFilter
End Sub
3
どんぐりず 2021/02/17 (水) 21:33:58 0029a@1c915

色々とご検討いただいており、恐縮です。本当にありがとうございます。
ちょっと時間を見つけて試してみます。
お待ちください。

3
きなこもち 2021/02/17 (水) 16:45:46 561e2@c8e67 >> 2

遅ればせながらおっしゃっていることが把握できました。
連結フォームになっていないという初歩なミスでした。

ご指摘ありがとうございました。解決いたしました。

2
hiroton 2021/02/17 (水) 16:03:21 130d7@f966d

こちらの「F_メンバー」を削除しようとすると

「F_メンバー」で表示しているレコードを削除しようとすると、ですよね?
やはり、こちらでは再現しませんでした(エラーメッセージが出ることなくデータを削除できました)

「移動ボタン」の件もですが、ちょっと想定できない動作をしているので、詳しく状況を合わせる必要がありそうです

試してほしいことですが、新規にフォームを作成して、この機能だけのフォーム・サブフォームにしたら同じ問題が発生しますか?

1
hiroton 2021/02/17 (水) 16:01:07 130d7@f966d

その他の追加分

追加で質問ですが、現在登録済みだった所属部署は表示されるのですが、新規で所属部署を登録する画面の作成方法がわからず…

回答

Private Sub 所属部署タブ_Change()
    If Me!所属部署タブ = 4 Then
        Me!部署データ.Form.Recordset.AddNew
    Else
        If Me!部署データ.Form.NewRecord Then Me!部署データ.Form.Recordset.MoveFirst
        Me!部署データ.Form.Recordset.Move 所属部署タブ - (Me!部署データ.Form.CurrentRecord - 1)
    End If
End Sub

こっちは発生している問題が解決したら煮詰めるということで

2
きなこもち 2021/02/17 (水) 14:08:57 561e2@c8e67 >> 1

情報不足していて済みません。
非連結で作成しています

13
どんぐりず 2021/02/17 (水) 13:34:43 0029a@1c915 >> 8

結構大掛かりになってきたのですね。ちょっと一旦考え直してみます。ありがとうございます!

12
どんぐりず 2021/02/17 (水) 13:33:09 0029a@1c915 >> 4

ちなみにこのとき、「移動ボタン」を表示していると1つ目のタブの状態でレコード2へ移動可能です。

11
どんぐりず 2021/02/17 (水) 13:31:59 0029a@1c915 >> 4

コードを全て削除すると、1つ目のタブのみ表示される状態になりました。

1

回答の前に確認ですが、
「F_申請一覧」フォームは連結フォームですか、非連結フォームですか。

ラベルにデータを表示させているので、非連結フォームのようですが。
 

3

ちなみに、ハイパーリンク型フィールドの場合、# で区切った各セクションは下記の意味になります。

表示テキスト#リンクアドレス#リンクサブアドレス#ヒントテキスト

10
どんぐりず 2021/02/17 (水) 12:13:51 0029a@1c915

hiroton様ありがとうございます。
いただいた内容を確認してまいります。

新たに問題が発生しました。
こちらの「F_メンバー」を削除しようとすると
以下エラーが起きて削除できません。
実行時エラー 2101
プロパティの設定値として指定した値が正しくありません。

デバッグで指定される色が付くコードの部分は
me!所属部署タブ = 0

1

Access - 連動するコンボボックスについて|teratail
と同じ質問ですね。
そちらの方で回答してますのでそちらを参照してください。

3
l2102 2021/02/17 (水) 07:01:55 5e96a@6cf95

ありがとうございます。

>編集する方法と謳う上記リンク先のようなことをしても編集できないということでしょうか?

はい。なお私がいじり回して分かったのは、

・「インポート操作の保存」は、システムテーブルへのレコード追加と関係が無いらしい。ウィザードで、例えば 1 フィールドでもデータ型を既定以外のものに指定すると、全フィールドについてレコードが追加されるらしい
・「1 フィールドでもデータ型を既定以外のものに指定」は、システムテーブルに間違いなく反映されている。が、その後ここを直接に修正しても、その修正は「保存済みのインポート操作」の実行で無視される

という感じです。

2

hatenaさん ありがとうございました、無事にできました。実は添付ファイルで作ってたらファイルサイズがとんでもないことになってしまいハイパーリンク型に変えていました。本当に助かりました。

2
hiroton 2021/02/16 (火) 17:35:36 1ab75@f966d

せっかくなので少し調べてみました

保存済みのインポート操作」の内容はImportExportSpecificationオブジェクトにXML形式で保存されているようです

ImportExportSpecification object (Access)

1
hiroton 2021/02/16 (火) 16:28:10 修正 1ab75@f966d

投稿してからそれらしいことやってることに気づきました(元投稿は削除)

Accessのインポート定義を編集する方法

試してないのでわからないんですが、編集する方法と謳う上記リンク先のようなことをしても編集できないということでしょうか?


やってみたらインポート操作の保存で保存するとMSysIMEXSpecsとかMSysIMEXColumnsとかにはデータ追加されないんですねぇ

MSysIMEXColumns自体はインポート定義用として正しく使われてると思うので今回の内容だと弄ってもダメそうですね

1
hiroton 2021/02/16 (火) 16:13:48 1ab75@f966d

ランタイム自体は最新のもの(microsoft 365 Access ランタイム)でいいと思いますよ

動かない場合には動かないなりの理由がありますのでエラー内容を確認しながら適切な対応をしましょう

そもそものインストールの制限(office365はwin10以降とか)や、officeの共存環境とか思いもしないところでうまくいかないなんてこともあるので最終的には「やってみないとわからない」系の内容ですね

1

ハイパーリンク型のフィールドと連結したテキストボックスということでしょうか。
だとしたら、
下記のようにフォルダーパスを # で囲んでください。

        Me.フォルダ = "#" & dlg.SelectedItems.Item(1) & "#"
1

情報が不足しているので、具体的に何をしたいのか不明瞭ですが、
とりあえず、「パラメータクエリ」を使ってできないか、チャレンジしてみてください。

そのうえで、テーブルの情報、データ例、どのような結果が欲しいのか、等のやりたいことと、
どのようなクエリを作成したのか、等の試みたこと、試みた結果どこで躓いたのか、
を提示してください。

9
hiroton 2021/02/16 (火) 09:24:24 1ab75@f966d >> 4

hirotonの環境では再現できませんでした。たとえばForm_Currentに追加したコードをすべて削除すると(ページの表示ON/OFF機能を削除すると)ページは常に表示されたままになっていますか?

8
hiroton 2021/02/16 (火) 09:02:59 1ab75@f966d >> 1

新規で所属部署を登録する画面

新規登録用の画面自体は[部署データ]フォームですか?
[所属部署タブ]タブに[ページ4]を追加します

Private Sub 所属部署タブ_Change()
    If Me!所属部署タブ = 4 Then
        Me!部署データ.Form.Recordset.AddNew
    Else
        If Me!部署データ.Form.NewRecord Then Me!部署データ.Form.Recordset.MoveFirst
        Me!部署データ.Form.Recordset.Move 所属部署タブ - (Me!部署データ.Form.CurrentRecord - 1)
    End If
End Sub

[ページ4]を選択すると新規登録用のレコードに飛ぶようになります。少し手抜きな部分(新規登録から既存のレコードに移るとちらつくかも)がありますが、動作を確認してみてください

ちなみに、このコードだけだと、実際に新規レコードが追加されてもタブの表示は変わりません。「新規で所属部署が登録されたとき」にページのON/OFFを見直す必要があります。親フォームとサブフォームを行ったり来たりな処理でちょっと大掛かりになるので、続きが必要な場合にいは改めて質問を立てなおしてください(大元の質問は、それはそれで続けているようなので)

7
どんぐりず 2021/02/13 (土) 22:07:50 0029a@1c915

追伸:
最初の質問に改めて戻るのですが

「F_メンバー」の中に「F_サブ所属部署」があります。
 「F_サブ所属部署」は多くても4件くらいです。
この2つの情報を繋いでいる「T_メンバー所属部署」(メンバーIDと所属部署IDが主キー)が存在しています。

「Q_メンバー所属部署」の中に、特定のメンバーIDを指定した時「所属部署①」「所属部署②」「所属部署③」「所属部署④」を引っ張ることはできますでしょうか。

4

今、解決しました…
ボタンについて、画像(イメージ)を使っていたのですが
通常のボタンに差し替えたらうまく作動するようになりました。

イメージをボタン代わりにしていたことが問題だったのでしょうか…?

3

ご確認いただき感謝です。
帳票のレコードなのですが、「btnメール作成」をクリックすると
全て "メール不要です。"と表示されてしまいます。
どのレコードのボタンを押しても「cboメールテンプレID = "1"」と認識されてしまうようです。
実際はレコード毎に番号を変えているのですが…。

2

状況がよくつかめません。

「btnメール作成」をクリックすると、帳票フォーム「F_メールテンプレ」が開くと思いますが、
その「F_メールテンプレ」の表示がおかしいということでしょうか。

「F_メールテンプレ」のレコードソースはクエリですか、テーブルですか。
どこの表示がおかしいのですか。

6
どんぐりず 2021/02/13 (土) 11:19:09 0029a@1c915 >> 4

追伸:
プロパティで「移動ボタン」を表示するときちんと2つ目の商品タブが表示されますが、表示しないを選択すると1つ目のタブしか表示されません。なぜでしょうね・・?

5
どんぐりず 2021/02/13 (土) 10:41:55 0029a@1c915 >> 4

遅くなりましたが、できました!!素晴らしいです。
追加で質問ですが、現在登録済みだった所属部署は表示されるのですが、新規で所属部署を登録する画面の作成方法がわからず…
質問ばかりで申し訳ありませんが、ご教示願えませんでしょうか。

4
hiroton 2021/02/10 (水) 17:28:13 fc00d@f966d >> 1

コード訂正

Private Sub Form_Current()
    Const max部署 = 4 '//この行を訂正
    Dim cnt部署 As Long
    Dim i As Long

    cnt部署 = Me!部署データ.Form.Recordset.RecordCount
    cnt部署 = IIf(cnt部署 > max部署, max部署, cnt部署)

    me!所属部署タブ = 0

    For i = 1 To cnt部署 - 1
        Me("ページ" & i).Visible = True
    Next
    
    For i = cnt部署 To max部署 - 1 '//この行を訂正
        Me("ページ" & i).Visible = False
    Next
End Sub

Private Sub 所属部署タブ_Change()
    Me!部署データ.Form.Recordset.Move 所属部署タブ - (Me!部署データ.Form.CurrentRecord - 1)
End Sub

添え字(0~)と数(1~)の対応で処理に間違いがあったので修正しておきます

1

この件、色々試しつつ未だ解決できずです。
基本的なことなのかと思いつつ、帳票の理解が足りていないようで恐縮ですが、どなたか教えていただけませんでしょうか。

3
どんぐりず 2021/02/10 (水) 16:47:44 f1ed8@e2de4 >> 2

回答がついてとてもうれしいです!明日確認してみます。

2
hiroton 2021/02/10 (水) 11:41:59 fc00d@f966d >> 1

サブフォームを単票フォームにするのならばタブの選択に合わせてレコードが移動できるようにすればいいですね
それと、親フォームのレコード移動時にサブフォームのレコード数に合わせてタブの表示/非表示を切り替えればよさそうです

新たに作るサブフォームを[部署データ]とします
タブコントロール[所属部署タブ]を設置します
[所属部署タブ]にページコントロールを[ページ0]~[ページ3]まで設置します

Private Sub Form_Current()
    Const max部署 = 3
    Dim cnt部署 As Long
    Dim i As Long

    cnt部署 = Me!部署データ.Form.Recordset.RecordCount
    cnt部署 = IIf(cnt部署 > max部署, max部署, cnt部署)

    me!所属部署タブ = 0

    For i = 1 To cnt部署 - 1
        Me("ページ" & i).Visible = True
    Next
    
    For i = cnt部署 To max部署
        Me("ページ" & i).Visible = False
    Next
End Sub

Private Sub 所属部署タブ_Change()
    Me!部署データ.Form.Recordset.Move 所属部署タブ - (Me!部署データ.Form.CurrentRecord - 1)
End Sub

1
どんぐりず 2021/02/07 (日) 18:02:30 f1ed8@e2de4

すみません、この質問の件について考えていて、改めて何がしたいのかわかりました‥。
フォームの中にサブフォームを作り、それを単票表示にして、その単票データをタブで切り替えるように見せることはできますでしょうか?
多くても4個くらいなのですが‥。

1
hideki 2021/02/06 (土) 16:09:32 e0d27@96514

SQL = "SELECT FROM MT_test WHERE 名前 like" 川 * ""

*を%に変更して解決しました。

13
どんぐりず 2021/02/05 (金) 12:30:46 0029a@1c915

本件、ご教示いただきありがとうございます。
結局、作成してみたら個人のフォームの「所属部署」の中にも色々登録しないといけないことがわかって
リンク(中間テーブル)で繋いでサブフォームにしました。

そこで、フォームの中身がごちゃごちゃしてきたので、
所属部署のサブフォームを1つずつタブ切替にしたいと思っています。。
上限は4くらいにしようと思っていますが、作成することはできそうでしょうか?
参照元データが同じなので無理な気もしていますが、可能であれば作成したく。。ご教示ください。

2
bunta 2021/02/04 (木) 10:10:32 3e392@fa49d

hatena様
提示して頂いたサイトがとても参考になり使用いたしました。ありがとうございます。
銀行コードは上記のサイトで実装できたのですが、そこからさらに支店コードを絞り出す方法はありますでしょうか?
銀行コードと銀行名のコンボボックスを配置し
その下に支店コードと支店名のコンボボックスを配置。
銀行コードや銀行名を選ぶと、支店コードと支店名がその銀行の支店だけを絞り込みたいです。

質問にさらに質問をしてしまい大変申し訳ありませんが宜しくお願い致します。