How to use ADO and Visual Basic with QODBC
Setup QODBC to work with ADO
Note: QODBC can be accessed from ADO. ADO can be used in Visual Basic (VB), Access, VBScript, ASP, C++, VB.NET, C#, and other languages that support COM components. Connection String The most challenging part of using QODBC in programming is the connection string. The simplest form includes a reference to a DSN. A system DSN called QuickBooks Data is automatically created when QODBC is installed. QuickBooks Data will be used in all examples but can be substituted for any different DSN name you create. Normally ADO pools connections. QODBC does NOT support connection pooling. It is recommended to tell ADO not to do connection pooling on any QODBC connection. This is done with OLE DB Services= -2. Other options available on the connection string: DFQ = Path to company file or. (dot) to indicate the currently open company file.
OpenMode = F (Follow Company), M (Multi-user), S (Single-user).
DeveloperCode = This is for users of the QODBC v5 OEM version only. It is required to connect to the OEM licensing model. The Code is given to you when you purchase a QODBC v5OEM licensing pack.
ColumnNameLen = This is a number that specifies the maximum length a column name can be. Using this is required in some development environments. Its use will make the returned column names not match the normally defined schema.
Example of simple DSN sConnectString = "DSN=QuickBooks Data;OLE DB Services=-2;" Example of a DSNless connection string sConnectString = "Driver={QODBC Driver for QuickBooks};DFQ=C:\Program Files\QODBC Driver for QuickBooks\sample04.qbw;OpenMode=M;OLE DB Services=-2;" Example using current ADO syntax sConnectString = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=QuickBooks Data;OLE DB Services=-2;"
Standard syntax "DRIVER={QODBC Driver for QuickBooks};SERVER=QODBC;DFQ=.;OLE DB Services=-2;OptimizerOn=No;" Instructions for Parameters in Standard Syntax
DFQ (./[path to .qbw file]) : . means the current company file is open in QuickBooks OLE DB Services = -2 OptimizerOn : Yes/No OpenMode : F/S/M <=> Follow company setting/Single-User/Multi-user UseCaseSensitiveRefNumber : Yes/No [Note: For QuickBooks Online Edition (QBOE), these additional parameters can also be used] IBizOEConnection: Yes/No IBizOETicketGUID: (GUID from web login) IBizOEPromptForLogin: Yes/No
Query Data VBS Example
'***************************************** Const adOpenStatic = 3 Const adLockOptimistic = 3 Dim oConnection Dim oRecordset Dim sMsg Dim sConnectString Dim sSQL sConnectString = "DSN=Quickbooks Data;OLE DB Services=-2;" sSQL = "SELECT Name FROM Employee" Set oConnection = CreateObject("ADODB.Connection") Set oRecordset = CreateObject("ADODB.Recordset") oConnection.Open sConnectString oRecordset.Open sSQL, oConnection, adOpenStatic, adLockOptimistic sMsg = "**********************" & Chr(10) Do While (not oRecordset.EOF) sMsg = sMsg & oRecordSet.Fields("Name") & Chr(10) oRecordset.MoveNext Loop sMsg = sMsg & "**********************" & Chr(10) MsgBox sMsg oRecordset.Close Set oRecordset = Nothing oConnection.Close Set oConnection = Nothing '*****************************************

Save your VBA file as QODBC Query Data.vbs, To execute the VBS file, Double Click on the file.

Visual Basic 6 Example
Note: Requires project reference to Microsoft ActiveX Data Objects 2. x Library
'***************************************** Dim oConnection As ADODB.Connection Dim oRecordset As ADODB.Recordset Dim sMsg As String Dim sConnectString As String Dim sSQL As String sConnectString = "DSN=Quickbooks Data;OLE DB Services=-2;" sSQL = "SELECT Name FROM Employee" Set oConnection = New ADODB.Connection Set oRecordset = New ADODB.Recordset oConnection.Open sConnectString oRecordset.Open sSQL, oConnection, adOpenStatic, adLockOptimistic sMsg = "**********************" & Chr(10) Do While (Not oRecordset.EOF) sMsg = sMsg & oRecordset.Fields("Name") & Chr(10) oRecordset.MoveNext Loop sMsg = sMsg & "**********************" & Chr(10) MsgBox sMsg oRecordset.Close Set oRecordset = Nothing oConnection.Close Set oConnection = Nothing '*****************************************

Sp_report Query Data VBS Example
Note: For QuickBooks reports, use sp_report like any other SELECT statement. For example, save the following example as sp_report.vbs to a file.
'***************************************** Const adOpenStatic = 3 Const adLockOptimistic = 3 Dim oConnection Dim oRecordset Dim sMsg Dim sConnectString Dim sSQL sConnectString = "DSN=Quickbooks Data;OLE DB Services=-2;" sSQL = "sp_report CustomerBalanceSummary show Text, Label, Amount_1 parameters DateMacro = 'ThisMonthToDate', SummarizeColumnsBy = 'TotalOnly'"
Set oConnection = CreateObject("ADODB.Connection") Set oRecordset = CreateObject("ADODB.Recordset") oConnection.Open sConnectString oRecordset.Open sSQL, oConnection, adOpenStatic, adLockOptimistic sMsg = "**********************" & Chr(10) Do While (not oRecordset.EOF) sMsg = sMsg & oRecordSet.Fields("Text") sMsg = sMsg & " " & oRecordSet.Fields("Label") sMsg = sMsg & " $" & oRecordSet.Fields("Amount_1") & Chr(10) oRecordset.MoveNext Loop sMsg = sMsg & "**********************" & Chr(10) MsgBox sMsg oRecordset.Close Set oRecordset = Nothing oConnection.Close Set oConnection = Nothing '*****************************************
Double-click on it using Windows Explorer, and you will get your Customer Balances:

Keywords: vbs adodb connection 64-bit vbs
|