Home HelpDesk Contact Us Downloads Links Search

Search for Answers

Intelligent FAQ Search. Type in your keywords to search for the answers you need.


How to Install QODBC?
Connecting QuickBooks
Using QODBC Remote
Try QODBC Desktop
Try QODBC Server
QODBC FAQs
QODBC SQL Scripts
QODBC sp_report
QODBC String Functions
Using Microsoft Office
Using Microsoft Excel
Using Microsoft Access
Using Microsoft Word
Using Crystal Reports
Using Visual Basic ADO
Using Your Browser
Using SQL Server
Using ColdFusion
QODBC News
QODBC OEM Program
Back to Main Website
What is QODBC?
What is QReportBuilder?
What is Electos?
What is Visual DataFlex?
What is DataFlex?
What is FlexODBC?
Downloads
Buy Now!
Support
Tutorials
Data Schema
Reseller Program
Accredited Trainers
About us
Privacy Policy
Worldwide Offices





 

 





Using Visual Basic ADO
 


Using QODBC with Visual Basic and ADO  

Setting up QODBC to work with ADO
QODBC can be accessed from ADO. ADO can be used in Visual Basic (VB), Access, VBScripts, ASP,  C++, VB.NET, C# and any other language that supports COM components. 
 
Connection String
The most difficult part of using ADO with QODBC 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 with any different DSN name you create.
 
Normally ADO pools connections. QODBC does not support connection pooling. It is recommended to tell ADO to not 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 currently open company file.
OpenMode  = F (Follow Company), M (Multi-user), S (Single-user).
DeveloperCode = This is for users of the OEM version only. It is required to connect to the OEM licensing model. The Code is given to you when you purchase an OEM 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 normal 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;"

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
'*****************************************

Visual Basic 6 Example
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
'*****************************************

Announcement List
To be alerted to news about QODBC, product releases, beta test cycles, new features and promotions subscribe to QODBC News Asia Pacific.


Email:
Subscribe to QODBC News Unsubscribe QODBC News

 

Telephone Support
One-to-One support issues will be subject to a A$33.00 per incident fee. Make sure you have the Serial Number of your purchased product and call 03 9761 3644 or +61 3 9761 3644 during our normal office business hours between 9am to 5pm week days Australian EST (with the exception of Public Holidays).
Support Incidents

Evaluation and non-installation support issues are subject to a A$33.00 per incident fee. Payments for Support Incidents may be made by clicking here



 

Copyright © 2010
Data Access Worldwide ABN: 86 544 223 459
All rights reserved



 Back Next