Date: Tue, 6 Feb 2001 19:58:43 +0900
From: who@example.co.jp
たきざわです。
>それぞれのクライアントで接続の確認ができれば、80%は大丈夫でしょう
>ただアプリケーションを動かす前に、各クライアントからデータベースの
>テーブルやビューなどを手動で開いたり、ストアドプロシージャを実行
>したり、ネットワーク越しのクライアントサーバー機能が働くかどうか
>確認した方が良いかも?
一通りやってみましたが、特に問題なく開けるしストアドプロシージャも
実行出来ます。
>それだったらその特定のプログラムの中を調査しましたか?
>どのような原因追求をされたのでしょうか?
非常に長くなってしまって申し訳無いのですが、コードを掲載しないと解決
出来ないっぽいので、長くなる事をお許しください。
1つの例ですが、検索プログラムの様なものですが、フォームに12個のコンボ
ボックスまたはテキストボックスがあり、この12個のコントロールに入力され
た値を元に検索し、結果を別のフォームに返すというものです。
又、コマンドボタンとして、フォームを閉じる、検索開始、検索条件のクリアの
3つがあります。
いづれのコマンドボタンをクリックしても(下記(1)(4)(8)のコード)
「イベントプロパティに指定した式 クリック時でエラーが発生しました。
データベースがOLEサーバーまたはActiveXコントロールと通信している
ときにエラーが発生しました。
となります。
(8)の場合は実際にデータベースとの接続が問題になってくるのでしょうが、
(1)(4)については、フォーム上のデータを消したり、フォームを閉じたり
といったデータベースの接続とは直接関係無い様に思えるのですが・・・。
エラーメッセージの「ActiveXコントロールと通信している時に・・・」と
いうところでひっかかってるのかな?とも思いますが、まだまだ初心者であ
る為に「ActiveXコントロールと通信」がエラーになるというのがどういう事
なのかも分からない状態であります。
以下、該当個所のコードの関係する所と思われる部分抜粋
※まだまだ初心者なもんで、コードが幼稚で恥ずかしいんですが・・(-_-;)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(1)フォームを閉じるボタンのコード
Private Sub cmd_close_Click()
DoCmd.Close
End Sub
(2)フォームが表示された時に自動的に実行されるコード
Private Sub Form_Load()
DoCmd.Maximize
Set Me.Recordset = Nothing
'----<接続を開始>----
Call Connect_cur
End Sub
(3)フォームを閉じる時に自動的に実行されるコード
Private Sub Form_Unload(Cancel As Integer)
'----<接続を閉じる>----
Call DisConnect_cur
End Sub
(4)テキスト・コンボに入力されたデータをクリアするコード
Private Sub cmd_解除_Click()
Call データクリア(Me)
End Sub
(5)標準モジュールに記載されたデータベース接続コード
Sub Connect_cur()
'----<データベース接続する>----
Set CN = Application.CurrentProject.Connection
CN.CursorLocation = adUseClient
End Sub
(6)標準モジュールに記載されたデータベース切断コード
Sub DisConnect_cur()
'----<データベース接続を閉じる>----
CN.Close
Set CN = Nothing
End Sub
(7)標準モジュールに記載された条件をクリアするコード
Sub データクリア(フォーム)
On Error Resume Next
Set FRM = フォーム
For Each コントロール In FRM.Controls
If TypeOf コントロール Is TextBox Or _
TypeOf コントロール Is ComboBox Then
コントロール.Value = ""
End If
Next
End Sub
(8)フォームの検索開始ボタンモジュール
Sub cmd_start_click()
'----<変数の定義>----
Dim KEY(1 To 11) As String
Dim Criteria As String
Dim CrLen As Integer
Dim I As Integer
'----<抽出条件の読み込み>----
'----<漢字氏名>----
If IsNull(Me!txt_氏名) Or Me!txt_氏名 = "" Then
KEY(1) = ""
Else
KEY(1) = "(氏名 LIKE '%" & Me!txt_氏名 & "%')"
End If
'----<裁判所選択>----
If IsNull(Me!cbo_裁判所名) Or Me!cbo_裁判所名 = "" Then
KEY(2) = ""
Else
KEY(2) = "裁判所名='" & Me!cbo_裁判所名 & "'"
End If
'----<裁判所種別選択>----
If IsNull(Me!cbo_裁判所種別) Or Me!cbo_裁判所種別 = "" Then
KEY(3) = ""
Else
KEY(3) = "裁判所種別='" & Me!cbo_裁判所種別 & "'"
End If
'----<裁判所選択>----
If IsNull(Me!cbo_地裁家裁支部名) Or Me!cbo_地裁家裁支部名 = "" Then
KEY(4) = ""
Else
KEY(4) = "地裁家裁支部名='" & Me!cbo_地裁家裁支部名 & "'"
End If
'----<事件番号年>----
If IsNull(Me!txt_事件�眷�) Or Me!txt_事件�眷� = "" Then
KEY(5) = ""
Else
KEY(5) = "([事件�眷�]= Me!txt_事件�眷�)"
End If
'----<事件�盖�号>----
If IsNull(Me!cbo_事件�盖�号) Or Me!cbo_事件�盖�号 = "" Then
KEY(6) = ""
Else
KEY(6) = "[事件�盖�号]='" & Me!cbo_事件�盖�号 & "'"
End If
'----<事件番号番号>----
If IsNull(Me!txt_事件�眸峭�) Or Me!txt_事件�眸峭� = "" Then
KEY(7) = ""
Else
KEY(7) = "([事件�眸峭�]=" & Me!txt_事件�眸峭� & ")"
End If
'----<担当社員>----
If IsNull(Me!cbo_社員氏名) Or Me!cbo_社員氏名 = "" Then
KEY(8) = ""
Else
KEY(8) = "(社員氏名='" & Me!cbo_社員氏名 & "')"
End If
'----<コメント>----
If IsNull(Me!txt_コメント) Or Me!txt_コメント = "" Then
KEY(9) = ""
Else
KEY(9) = "(コメント LIKE '%" & Me!txt_コメント & "%')"
End If
'----<法務手続状況>----
If IsNull(Me!cbo_法務手続状況) Or Me!cbo_法務手続状況 = "" Then
KEY(10) = ""
Else
KEY(10) = "(法務手続状況='" & Me!cbo_法務手続状況 & "')"
End If
'----<支店選択>----
If IsNull(Me!cbo_支店) Or Me!cbo_支店 = "全支店" Or Me!cbo_支店 = ""
Then
KEY(11) = ""
Else
KEY(11) = "店名='" & Me!cbo_支店 & "'"
End If
'----<抽出条件の設定>----
For I = 1 To 11
If KEY(I) = "" Then
'
Else
Criteria = Criteria & KEY(I) & " AND "
End If
Next I
'----<条件が設定されてない場合は処理を抜ける>----
If Criteria = "" Then Exit Sub
'----<文字列作成<FOR~NEXTで最後についたANDを除く>----
CrLen = Len(Criteria)
Criteria = Left(Criteria, CrLen - 5)
'----<フィルタの実行>----
DoCmd.OpenForm "K_法務手続検索_結果", , , Criteria 'ここで別の結果表
示用のフォーム
が表示される。
End Sub
| [MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
| よろしければお困りの内容を、電子メールで教えて下さい。 |
|
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|