- ベストアンサー
publicプロシージャの記述方法で教えてください。
- 非連結テキストボックスのクリアを複数のフォームで行いたい為、標準モジュールに下記のコードを作成し、各フォームの削除ボタンを押しCallで呼び出すと [Meキーワードが不正] とエラーが出てしまいます。
- 公開プロシージャの記述方法について教えてください。
- 公開プロシージャを使用して非連結テキストボックスを複数のフォームでクリアする方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- アクセス超初心者です。
アクセス超初心者です。 下記内容のイベントプロシージャーを記述しました。 フォーム内にクリアというコマンドボタンを作成。で、クリックしたら書き込まれていたフォームの内容が消えるように作ったのですが。(ネット上で見つけたプロシージャーを参考に作成しました) 黒丸部分が黄色くなってエラーになります。 どのように修正すればいいのでしょうか? 分かる方いましたらご教示ください<m(__)m>よろしくお願い致します。 Private Sub cmd_クリア_Click() Dim CT1 As Control For Each CT1 In Me.Controls If CT1.ControlType = acTextBox Or CT1.ControlType = acComboBox Then ●CT1.Value = Null ElseIf CT1.ControlType = acCheckBox Then CT1.Value = False End If Next End Sub
- 締切済み
- オフィス系ソフト
- コンボボックスの値もクリアしたい!
コンボボックスの値もクリアしたい! 現在下記のコードでtxtBoxの値をクリアしていますが、 同フォームにあるコンボボックスの値もクリアしたいのですが解りません。 教えてください。 Public Sub txtクリア(objForm As Object) Dim txtclear As Control For Each txtclear In objForm.Controls If txtclear.ControlType = acTextBox Then txtclear.Value = Null End If Next End Sub
- ベストアンサー
- その他(プログラミング・開発)
- コントロールタイプを絞ってループしたい
アクセスのフォーム上のコントロールをループする際に テキストボックスだけ絞ってループしたいのですが Sub Sample() Dim myFormName As String Dim ctl As Control myFormName = "フォーム1" For Each ctl In Forms(myFormName).Controls If ctl.ControlType = acTextBox Then End If Next ctl End Sub これだとテキストボックスの量が多くて、2秒くらいかかるのですが For Each ctl In Forms(myFormName).Controls この時点で、テキストボックスだけ絞る方法はありますか? For Each ctl In Forms(myFormName).ControlType(acTextBox) こうするとエラーになりました。 ご教授よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- Accessのコントロールの数え方
Access 2003のコントロールについてお教えください。 フォーム1というフォームにチェックボックスがいくつも配置されています。 チェックボックスがいくつ配置されているか知る方法はあるのでしょうか? また、いくつのチェックボックスにチェックが入っているか知る方法はあるでしょうか? ネットで検索したところ、下記のコードが約にたつような気がするのですが、どうやって活用すればよいのかがわかりません・・・・ For Each ctl In Me.Controls With ctl If .ControlType = acTextBox Then 'コントロールの種類がテキストボックスなら値をNull(空)に設定 .Value = Null End If End With Next ctl わかりでしたらお教えください。よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- アクセスvba if文の記述方法
検索フォームを作成しました。 入力項目は「氏名」「カナ」で入力チェックをおこなっております。 (未入力)メッセージを表示「未入力です」 (入力有)結果一覧のフォームを表示 未入力チェックは正常に処理されておりメッセージが表示されます。 項目に値を入力した場合フォームが起動しません。 if文から外した場合は正常に実行されます。 この条件の場合if文でどのように記述したらよいのでしょうか。 宜しくお願いします。 Private Sub 検索_Click() Dim mct As Control Dim flg As Boolean flg = False For Each mct In Me.Controls If mct.ControlType = acTextBox Then If mct.Tag = "Check" Then If Not IsNull(mct) Then flg = True Exit Sub End If End If End If Next mct If flg = True Then Dim str As String str = "[氏名] Like ""*" & Me!氏名 & "*"" And [カナ] Like ""*" & Me!カナ & "*""" DoCmd.OpenForm "結果一覧", , , str Else MsgBox ("未入力です") End If End Sub
- ベストアンサー
- オフィス系ソフト
- もしフォームヘッダーにコントロールがあるのなら
アクセスのフォームの、フォームヘッダーに検索用テキストボックスとコンボボックスがあり、 詳細エリアにレコードソース(コントロールソース)に紐付いたテキストボックスが複数あります。 フォームヘッダーのフィルタを解除するコマンドを実行して、 フォームヘッダーのテキストボックスとコンボボックスをnullにしたいのですが、 vbaで「もしフォームヘッダーなら」ってするにはどうすればいいでしょうか? フォームヘッダーのコントロール名も詳細エリアのコントロール名も 区別のないコントロール名でなのでコントロール名で条件分岐をすることは不可能です。 Private Sub フィルタを解除コマンド_Click() Dim ctl As Control For Each ctl In Me.Controls If (ctl.ControlType = acTextBox) Or (ctl.ControlType = acComboBox) Then 'ここで、もしフォームヘッダーにコントロールがあるのならってしたい Me.Controls(ctl.Name) = Null End If Next ctl Me.Form.FilterOn = False End Sub このコードに付け加えてくれませんか? Debug.Print ctl.Name でコントロール名を取得するとフォームヘッダーも詳細もどちらのコントロール名も取得されてしまいます。 On Error Resume Next 以外でお願いします。
- ベストアンサー
- オフィス系ソフト
- テキストボックスなら空白にする
フォームにテキストボックス2つとコンボボックス2つを設置して、 規定値に値を設定し、 Private Sub cb_テキストボックスなら空白にする_Click() Dim ctl As Control For Each ctl In Me.Controls If ctl.ControlType = acTextBox Then ctl.Value = Empty End If Next ctl End Sub としたのですが何も起こりません。 空白にするにはどうすればいいでしょうか? あと、 ctl.Valueと打つ時に、 ドットの後に、Valueが一覧に出てきませんでした。 それが原因で空白にならないのでしょうか? ご回答よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- アクセス初心者です。プログラムの書き方について。
アクセス初心者です。 Private Sub cmd_キャンセル_Click() Dim CT1 As Control For Each CT1 In Me.Controls If CT1.ControlType = acTextBox Or CT1.ControlType = acComboBox Then CT1.Value = Null ElseIf CT1.ControlType = acCheckBox Then CT1.Value = False End If Next Dim strmsg As String If MsgBox("基本情報登録画面を閉じますか?", vbOKCancel) = vbOK Then DoCmd.Close 'フォームを閉じる DoCmd.OpenForm "Mainmenu" Else 'OK以外の場合 Exit Sub 'そのままプロシージャーから抜け出す Me.コード.SetFocus End If End Sub キャンセルのコマンドボタンを作成しました。キャンセルを押すと、入力していた情報がクリアされ、「基本情報登録画面を閉じますか」と言うメッセージボックスがでてきて、OKかキャンセルの選択をします。OKの場合は基本情報登録画面が閉じて、MainMenuが開きます。キャンセルのときは、基本情報登録画面のままで、コードのところにカーソルが着ててほしいのです。上記プログラムではキャンセルからの動きができません。基本情報登録画面のままというのはできているのですが、カーソル指定ができません。どの書き方がまずいのでしょうか?わかる方がいましたらご教示ください。よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- アクセス 処理の分岐について。
Private Sub コマンド42_Click() Dim CT1 As Control For Each CT1 In Me.Controls If CT1.ControlType = acTextBox Or CT1.ControlType = acComboBox Then CT1.Value = Null ElseIf CT1.ControlType = acCheckBox Then CT1.Value = False End If Next Dim strmsg As String strmsg = "基本情報登録画面を閉じますか?" If MsgBox(strmsg, vbOKCancel + vbCritical) = vbOK Then DoCmd.Close End If DoCmd.OpenForm "Mainmenu" End Sub というプログラムを書きました。これだと、OKコマンドをクリックすると基本情報登録画面が閉じて、MainMenuが開きます。cancelコマンドをクリックすると、基本情報登録画面がそのままで、MainMenuが開きます。キャンセルのときは、基本情報登録画面をそのままにして、アクションは何もおきなくていいのですが、何を変えればいいのでしょうか? call再表示でFunction 再表示()で書き込んでみたのですが、エラーが出ます。多分、簡単なことなのでしょうけど、うまくいきません。どなたかわかる方がいましたらご教示ください。よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- For Each すべてループされない?アクセス
For Each ctl In Forms(FormName).Controls Debug.Print ctl.Name If ctl.ControlType = acTextBox Then If ctl.Name Like "削除*" Then DeleteControl FormName, ctl.Name End If End If Next ctl こういうループの仕方は、完全型ではないのでしょうか? フォーム上に「削除」で始まるテキストボックスをすべて削除したいのですが 例えば4個あれば、2個のコントロールしか削除されません。 コントロールを削除することにより、インデックスが狂うのでしょうか?
- ベストアンサー
- オフィス系ソフト
- フルパッケージダウンロード 【推奨】をダウンロード、インストールしてもBrother iPrint&Scanがインストールできず、エラーが発生しています。
- 個別でBrother iPrint&Scanをダウンロード、インストールしても同様のエラーが発生し、アンインストールして再起動しても解決しません。
- DCP-J926Nを使用しているWindows10の環境で、無線LANで接続していますが、正常に動作しません。
お礼
ありがとうございます。 バッチリです! 早急かつ丁重なアドバイスありがとうございました、 まだまだ解らない事だらけなので、御力添えよろしくお願いいたします。