2016-05-19 3 views
1

コントロールを含み、SQL Serverのテーブルにリンクされた新しいフォームがあります。テーブルを開いた状態で再リンクするコードを用意してください。このコードは他の5つのアプリケーションで動作しますが、このコードは動作しません。ここでは、コードです:フォームはOnOpenイベントのコードを無視しています

Dim tdf As DAO.TableDef 
    For Each tdf In CurrentDb.TableDefs 
    ' check if table is a linked table 
    If Len(tdf.Connect) > 0 Then 
    tdf.Connect = "Connect String" 
    tdf.RefreshLink 
    End If 
    Next 

私はアプリが起動されたとき開くようにオプションで設定したフォームを持っていたが、それは、私は、接続文字列を持っているパスワードの入力を求めます。オープンイベントのコード行で停止しましたが、そのコードは実行されません。それはonopenイベントが無視されているようです。アクセスがOn Openイベントの実行前にバインドされたフォームのデータをロードしたい JPL

答えて

0

感謝。あなたの他のアプリケーションでは、開始フォームがバインドされていないと思います。この周り

あなたの最善の方法は次のとおりです。

はあなたの再リンクコードでパブリック関数を呼び出すAutoExec macroを作成します。

後関数はフォームは、何にバインドされている場合、私が言うことができるどのようにあなたのバウンドスタート形

+0

を開くことができます。フォーム上にはレコードソースがクエリであるリストボックスがありますが、フォームのプロパティのデータタブにはレコードソースはありません。だから、それは何に縛られますか? – jpl458

+0

@ user3216034:あなたは「コントロールが含まれていて、SQL Serverのテーブルにリンクされているフォーム**」と書いています。レコードソースがない場合は、バインドされていません。しかし、バインドされたリストボックスにも同じ効果が適用されます。テーブルまたはクエリにバインドされたコントロール(または行ソース)がある場合、そのデータはOnOpenの前に読み込まれます。 – Andre

+0

わかりやすくするために、SQL Serverのテーブルにアクセスするクエリを含むリストボックスが1つあります。それでおしまい。他のすべてのコントロールには、作成中に入力されたデータがあります。あなたが書いたことを理解すれば、その一つのリストボックスが犯人です、それは正しいのですか?フォーム自体のレコードソースはありません。 – jpl458

関連する問題