このコードをステップ実行すると、関数が呼び出されないだけでなく、myBase.Load の残りの部分がここで行われていることを完了していないことがわかります。
すべての外部参照が表示されるようになりました。プログラムは ** で囲まれた行にはヒットせず、最初の項目として frmMain_Load を実行します。ステップスルー アイコンは、reader= で始まる行に表示されますが、runAsIsQuery を呼び出すことはありません (ブレークポイントはキャッチされず、ステップスルーは単に蒸発します)。次に、frmMain_LoadまたはrunAsISQueryからの他のコードを処理せずにfrmMainを表示します
Private Sub frmMain_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
sqlstring = "SELECT Nickname FROM tblBikeInfo"
reader = sql.runAsIsQuery(cnn, sqlstring) 'never fires
**If 1 = 1 Then**
'ummmm never comes back here either
End If
これらがグローバル変数として frmMain にある他の参照について求められる追加の詳細
Dim reader As OleDbDataReader
Dim sql As OLEDB_Handling 'custom class
Public cnn = MotorcyleDB.GetConnection
カスタム クラスの関数 (OLEDB_Handling)
**Public Function runAsIsQuery(connection As OleDbConnection, SQL As String) As OleDbDataReader**
Dim reader As OleDbDataReader
Dim command As New OleDbCommand(SQL)
command.Connection = connection
Try
connection.Open()
reader = command.ExecuteReader()
Return reader
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Function
呼び出される接続文字列クラス (MotorcyleDB)
Public Shared Function GetConnection() As OleDbConnection
Return New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\************\Documents\Visual Studio 2010\Projects\MotorcycleMinder\MotorcycleMinder\MotorcycleServiceLog11.accdb")
End Function