検索ダイアログ


  呼び出し側




テキストボックスリストボックスボタンを用意します。テキストボックスとリストボックスは、編集ロックしておきます。検索結果でのみデータをセットする為です。検索機能的には、ボタンは一つでかまいませんが、編集ロックされているのでクリアボタンは必要でしょう

ボタンのクリックイベントで以下のコードを実行します

  

DoCmd.OpenForm "フォーム名", , , , , acDialog, Me.Name & ":txtコード"
Me.lst名称.Requery
  

フォーム名は、ダイアログとなるフォームです。acDialog によってモーダルダイアログとして呼び出されます。これによって、このフォームは呼び出し側が最大化されていても最大化されません。Me.Name & ":txtコード" はダイアログに渡す引数となります

Requery は、コードフィールドにダイアログ側でデータをセットする為、そのコードを元に名前を再検索させて表示します。この為、リストボックスが都合よい事になります(列数は1で、もちろん非連結です)。値集合ソースで以下のように記述されています

  

SELECT テーブル名.名称
FROM テーブル名
WHERE (((テーブル名.コード)=[Forms]![呼び出し側フォーム名]![txtコード]));
  

クエリを作成する事はできるだけ避けるよう心がけて下さい。後の管理が大変だからで、
可能な限り他の方法を考えたほうが結果的に応用の効く結果となります






  ダイアログ側




フォームヘッダのみ使います。コントロールは、検索文字列入力用のテキストボックスと検索実行用のボタンと、検索表示するリストボックスです。Access のリストボックスは、カラム分割できるので検索結果表示にはもってこいです。

例えば列数は 4 で、列幅は 1.806cm;6cm;2cm;6cm に対して、値集合ソースは以下のようになっています

  

SELECT テーブル名.コード, テーブル名.名称, テーブル名.郵便番号, テーブル名.住所1
FROM テーブル名
WHERE (((テーブル名.名称) Like "*" & [Forms]![ダイアログのフォーム名]![txt検索名称] & "*"));
  

ダイアログ表示と同時に、全てのデータが表示対象となります。初期になにも表示しない場合は値集合ソース(RowSource)
へのセットを検索ボタンクリックイベントで行います。その場合は、Requery が必要なくなります

検索ボタンのクリックイベントでは、リストボックスを Requery するたけです。

DblClick イベントで、以下のようにして呼び出し側のテキストボックスに値をセットします

  

    Dim nIdx, strArg

    nIdx = Me.lst検索情報.ItemsSelected.Item(0)
    
    If Me.OpenArgs <> "" Then
    
        strArg = Split(Me.OpenArgs, ":")
        
        If UBound(strArg) = 1 Then
            Forms(strArg(0)).Controls(strArg(1)).Value = Me.lst検索情報.Column(0, nIdx)
        End If
        
        DoCmd.Close , , acSaveNo

    End If
  




yahoo  google  MSDN  MSDN(us)  WinFAQ  Win Howto  tohoho  ie_DHTML  vector  wdic  辞書  天気 


[access]
claudebot
24/03/29 11:01:34
InfoBoard Version 1.00 : Language=Perl

1 BatchHelper COMprog CommonSpec Cprog CprogBase CprogSAMPLE CprogSTD CprogSTD2 CprogWinsock Cygwin GameScript HTML HTMLcss InstallShield InstallShieldFunc JScript JScriptSAMPLE Jsfuncs LLINK OldProg OracleGold OracleSilver PRO PRObrowser PROc PROconePOINT PROcontrol PROftpclient PROjscript PROmailer PROperl PROperlCHAT PROphp PROphpLesson PROphpLesson2 PROphpLesson3 PROphpfunction PROphpfunctionArray PROphpfunctionMisc PROphpfunctionString PROsql PROvb PROvbFunction PROvbString PROvbdbmtn PROvbonepoint PROwebapp PROwin1POINT PROwinSYSTEM PROwinYOROZU PROwindows ProjectBoard RealPHP ScriptAPP ScriptMaster VBRealtime Vsfuncs a1root access accreq adsi ajax amazon argus asp aspSample aspVarious aspdotnet aw2kinst cappvariety centura ckeyword classStyle cmaterial cmbin cmdbapp cmenum cmlang cmlistbox cmstd cmstdseed cmtxt cs daz3d db dbCommon dbaccess dnettool dos download flex2 flex3 flex4 framemtn framereq freeWorld freesoft gimp ginpro giodownload google hdml home hta htmlDom ie9svg install java javaSwing javascript jetsql jquery jsp jspTest jspVarious lightbox listasp listmsapi listmsie listmsiis listmsnt listmspatch listmsscript listmsvb listmsvc memo ms msde mysql netbeans oraPlsql oracle oracleWiper oraclehelper orafunc other panoramio pear perl personal pgdojo pgdojo_cal pgdojo_holiday pgdojo_idx pgdojo_ref pgdojo_req php phpVarious phpguide plsql postgres ps r205 realC realwebapp regex rgaki ruby rule sboard sc scprint scquest sdb sdbquest seesaa setup sh_Imagick sh_canvas sh_dotnet sh_google sh_tool sh_web shadowbox shgm shjquery shvbs shweb sjscript skadai skywalker smalltech sperl sqlq src systemdoc tcpip tegaki three toolbox twitter typeface usb useXML vb vbdb vbsfunc vbsguide vbsrc vpc wcsignup webanymind webappgen webclass webparts webtool webwsh win8 winofsql wmi work wp youtube