2017-02-08 9 views
0

なぜ私はエラー "SubまたはFunctionが定義されていない" 取得していますが定義されていません...ここに私のコードがあるSubまたはFunctionがVB6

FORM2

Option Explicit 
Public Report As New CrystalReport1 
Public mvCn As New ADODB.Connection 

Public Function printReport() 

Dim strConnectionString As String 
Dim rs As ADODB.Recordset 
Dim strScript As String 

strConnectionString = "Provider=SQLOLEDB............" 

mvCn.ConnectionString = strConnectionString 
mvCn.CommandTimeout = 0 
mvCn.CursorLocation = adUseClient 
mvCn.Open 

strScript = strScript & "SELECT * FROM employee" & vbCrLf 

Set rs = mvCn.Execute(strScript) 

Report.Database.SetDataSource rs 
Report.AutoSetUnboundFieldSource crBMTNameAndValue 

CRViewer1.ReportSource = Report 
CRViewer1.ViewReport 

Set Report = Nothing 

End Function 

フォーム1 .....

+1

フォームではなく、モジュールで公開機能を配置する必要があります.BTW:Form2.printReportは機能しますが、ここから開始することをお勧めします。[VBプロジェクトの分析](http://www.thevbprogrammer。 com/Ch02/02-01-Anatomy.htm) – deblocker

答えて

2

ここで、printReport関数は定義されていますか?クラスモジュール内にある場合は、クラスのインスタンスをインスタンス化し、そのクラスのメソッドとしてprintReportを呼び出す必要があります。例えば:

Private Sub Command1_Click() 
    Dim oClass As New Class1 

    oClass.printReport 

End Sub 

それとも、あなたはそれをインスタンス化したりする方法としてそれを呼び出すことはありません、モジュールであなたのprintReport機能を配置することができます - あなたはあなたのクリックイベントに持っているとして、あなたが代わりにそれを呼び出します。

+0

返信いただきありがとうございます。私のフォームに定義された私のprintReport関数2 – jhovyn

+0

Form2コードは表示されません。あなたの投稿を編集してForm2について説明し、それをどのように作成して表示していますか? – MarkL

+0

ありがとうございます。私の投稿をすでに編集しています – jhovyn

-1

手順はCAことができる ")プライベートサブのCommand1_Click(" エラーメッセージがここに

Option Explicit 

Private Sub Command1_Click() 

printReport 

End Sub 

ここで私の機能 "printReport" と呼んでそんなに単純な方法で縛られた。[あなたが電話した通り]

例:

Private Sub Form_Load() 
    Test1 
End Sub 

Sub Test1() 
    MsgBox "Test1" 
End Sub 
関連する問題