> InitializeDataObject(oApp.nSQLMode, tcConnection, tcSQL) > Dim llSuccess As Boolean > llSuccess = False > Try > oCommand.Connection = oConnection >>I don't see where oConnection comes from.
Private Function InitializeDataObject(ByVal tnConnType As Integer, ByVal tcConnection As String, _ ByVal tcSql As String) As IDbConnection Dim loEnumerator As IEnumerator = oParameters.GetEnumerator Dim loParameter As Object cConnectionString = tcConnection cSQL = tcSql ' This allows multiple SQL commands to be executed with the same set of parameters ' Otherwise, down below in this code, the oParameters2.Add() will keep adding the same ' set of parameters and an error will occur. ' So, basically, on each SQL commands, oParameters2 is propertly set based on loParameter oParameters2.Clear() Select Case tnConnType Case 1 oConnection = New OleDbConnection(tcConnection) oDataAdapter = New OleDbDataAdapter oCommand = New OleDbCommand oDataParameter = New OleDbParameter While loEnumerator.MoveNext loParameter = loEnumerator.Current oParameters2.Add(New OleDbParameter(loParameter(1, 1).ToString, loParameter(1, 2))) End While Case 2 oConnection = New SqlConnection(tcConnection) oDataAdapter = New SqlDataAdapter oCommand = New SqlCommand oDataParameter = New SqlParameter While loEnumerator.MoveNext loParameter = loEnumerator.Current oParameters2.Add(New SqlParameter(loParameter(1, 1).ToString, loParameter(1, 2))) End While Case 3 oConnection = New OdbcConnection(tcConnection) oDataAdapter = New OdbcDataAdapter oCommand = New OdbcCommand oDataParameter = New OdbcParameter While loEnumerator.MoveNext loParameter = loEnumerator.Current oParameters2.Add(New OdbcParameter(loParameter(1, 1).ToString, loParameter(1, 2))) End While End Select Return oConnection End Function