「Access2003」の「イベントプロシージヤ」
◇-?「Access2003」の「イベントプロシージヤ」-しん(2005/1/26-13:15)No.232424 ┣?!Re:「Access2003」の...-unknown(2005/1/27-00:29)No.232583 ┗?【解決】Re:「Access200...-しん(2005/1/28-10:41)No.232898
▲このページのトップに戻る
▲このページのトップに戻る
▲このページのトップに戻る
232424 | 「Access2003」の「イベントプロシージヤ」 | しん | 2005/1/26-13:15 |
メーカー名:東芝 OS名:WindowsXp HomeEdition パソコン名:PAEX522PDE3 ソフト関連:ソフトを組み込んだが動かない 使用回線:ADSL -- 下記は抜粋したものですが、その中で 「' フオームにイベントを組み込む」この部分を使用しなければ プログラムは正常に作動します。 しかし 「'フオームを描く」の中の .OnTimer = "=my()" の部分を削除して 先ほどの 「' フオームにイベントを組み込む」を生かすと正常に作動しません 原因、対処方法をどなたか聞かせて下さい。 お願いいたします。 +++++++++++++++++++++++++++++++++++++ Option Compare Database Option Explicit Private pmyFrm As Form Private pHour As Control '時刻表示 Sub CLOCK() Dim myfrm As Form Dim myModule As Module Dim ctlLabel As Control Dim myctl As Control Dim frmName As String Dim frmEvent As String '***************************************************** 'フオームを描く Set myfrm = CreateForm With myfrm .OnTimer = "=my()" .TimerInterval = 1000 End With '***************************************************** ' 表示枠を描く(時刻表示) Set ctlLabel = CreateControl(myfrm.Name, acLabel) With ctlLabel .Name = "時刻" .Caption = "00000000" .FontSize = 72 .SizeToFit End With '*****************************************問題の部分ここから****** ' フオームにイベントを組み込む 'frmEvent = "Private Sub Form_Timer()" & vbCrLf & _ " Me!pHour.Caption = Time" & vbCrLf & _ "End Sub" ' Set myModule = myfrm.Module ' myModule.InsertText frmEvent ' myModule.InsertLines 3, vbTab & "Private pHour As Integer" '******************************************問題の部分ここまで****** ' フオームを開く frmName = myfrm.Name DoCmd.OpenForm myfrm.Name DoCmd.Maximize '***************************************************** ' 開いたFormからフオーム名とコントロール名を得る Set pmyFrm = Forms(frmName) For Each myctl In pmyFrm.Controls If myctl.Name = "時刻" Then Set pHour = myctl Next End Sub ++++++++++++++++++++++++++++++++++ Function my() pHour.Caption = Time End Function |
▲このページのトップに戻る
232583 | Re:「Access2003」の「イベントプロシージヤ」 | unknown | 2005/1/27-00:29 |
記事番号232424へのコメント しんさんは No.232424「「Access2003」の「イベントプロシージヤ」」で書きました。 >下記は抜粋したものですが、その中で >「' フオームにイベントを組み込む」この部分を使用しなければ >プログラムは正常に作動します。 >しかし >「'フオームを描く」の中の > .OnTimer = "=my()" >の部分を削除して > >先ほどの >「' フオームにイベントを組み込む」を生かすと正常に作動しません > >原因、対処方法をどなたか聞かせて下さい。 >お願いいたします。 参考程度です。自信無し。 Access2000では下記で時刻表示するようです。 '*****************************************問題の部分ここから****** ' フオームにイベントを組み込む ' Me!を修正。コントロールの指定を変数で渡せなかったような気が、、、 frmEvent = "Private Sub Form_Timer()" & vbCrLf & _ " Me![時刻].Caption = Time" & vbCrLf & _ "End Sub" Set myModule = myfrm.Module myModule.InsertText frmEvent myModule.InsertLines 3, vbTab & "Private pHour As Integer" '******************************************問題の部分ここまで****** ただし、“pHour”にSetされるかは未検証です(汗 .OnTimer="=my()" はうまく動作しない、、、むぅぅ。 |
▲このページのトップに戻る
232898 | Re:「Access2003」の「イベントプロシージヤ」 | しん | 2005/1/28-10:41 |
記事番号232424へのコメント しんさんは No.232424「「Access2003」の「イベントプロシージヤ」」で書きました。 >メーカー名:東芝 >OS名:WindowsXp HomeEdition >パソコン名:PAEX522PDE3 >ソフト関連:ソフトを組み込んだが動かない >使用回線:ADSL >-- >下記は抜粋したものですが、その中で > >+++++++++++++++++++++++++++++++++++++ 早速の御指導有難うございます。 色々試してみました、結果、基本的には下記のコーテイングで行ってみます。 Sub Clock_4() Dim myfrm As Form Dim myModule As Module Dim myLabel As Control '***************************************************** ' フオームを描く Set myfrm = CreateForm With myfrm .TimerInterval = 1000 End With '***************************************************** ' 表示枠を描く(時刻表示) Set myLabel = CreateControl(myfrm.Name, acLabel) With myLabel .Name = "時刻" .Caption = "00000000" .FontSize = 127 .SizeToFit End With '***************************************************** ' フオームにイベントを組み込む Set myModule = myfrm.Module myModule.InsertText "Private Sub Form_Timer()" & vbCrLf & _ "時刻.Caption = Time" & vbCrLf & "End Sub" '***************************************************** ' フオームを開く DoCmd.OpenForm myfrm.Name End Sub ++++++++++++++++++++++++++++++++++++ (1)「pHour」 の部分 を 「時刻」に変更 (2)Me!時刻 は 時刻 だけでも 正常に作動する こんな事を学びました。 色々有難うございました +++++++++++++++++++++++++++++++++++ また、下記の方法でも正常に作動しました Private pmyFrm As Form Private pHour As Control '時刻表示 Sub Clock_3() Dim myfrm As Form Dim ctlLabel As Control Dim myctl As Control Dim frmName As String '***************************************************** 'フオームを描く Set myfrm = CreateForm With myfrm .OnTimer = "=myff()" .TimerInterval = 1000 End With '***************************************************** ' 表示枠を描く(時刻表示) Set ctlLabel = CreateControl(myfrm.Name, acLabel) With ctlLabel .Name = "時刻" .Caption = "00000000" .FontSize = 127 .SizeToFit End With '***************************************************** ' フオームを開く frmName = myfrm.Name DoCmd.OpenForm myfrm.Name DoCmd.Maximize '***************************************************** ' 開いたFormからフオーム名とコントロール名を得る Set pmyFrm = Forms(frmName) For Each myctl In pmyFrm.Controls If myctl.Name = "時刻" Then Set pHour = myctl Next End Sub Function myff() pHour.Caption = Time End Function |
何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり
参考 | 回数 | 投稿日時 | 何か一言 |
---|