Quantcast
Channel: FLEXquarters.com Limited
Viewing all 313 articles
Browse latest View live

How can I add blank InvoiceLine in QuickBooks using QODBC.

$
0
0

 

Problem Description:

How can I add blank InvoiceLine in QuickBooks using QODBC.

Solution:

You cannot create an empty Invoice, neither in QODBC nor QuickBooks. But in QuickBooks, you could leave lines blank and just make sure there is at least one line with data in your invoice to create empty line records.



You can create same from QODBC by using below queries. Please note you need to create one line with sufficient data. For rest line, you can just add description & keep other fields blank.

When the line record is null, there will be no record for the newly created invoice, which is not allowed by QuickBooks.

INSERT INTO InvoiceLine (CustomerRefListID, RefNumber, InvoiceLineItemRefListID, InvoiceLineDesc, InvoiceLineRate, InvoiceLineAmount, InvoiceLineSalesTaxCodeRefListID,FQSaveToCache) VALUES ('670000-1071517519', '71099', '320000-1071525597', 'POWERTRAK-2000', 200.00000, 200.00, '20000-999022286',1)

INSERT INTO InvoiceLine (InvoiceLineDesc, FQSaveToCache) VALUES ('POWERTRAK-3000', 1)

INSERT INTO InvoiceLine (InvoiceLineDesc, FQSaveToCache) VALUES ('POWERTRAK-4000', 0)


Troubleshooting - VB Demo or Test Connection crashing.

$
0
0

Problem Description:

VB Demo\Test Connection is crashing When I tried to connect to QuickBooks using QODBC.

I have tried to reinstall QODBC & QuickBooks but still QODBC Test connection (also via VB Demo) is crashing. Also, I tried to run QODBC as Admin/Non-Admin user, VB Demo but no success.

Solution:

If you are running QODBC with Detail Trace enable mode, then please check log file size (Detail Trace, QODBC Messages, SDK Messages).

It should not be more than 400 MB.

Please clear all the log files & Optimizer file.

Then please try to Test Connection through VB Demo on sample company file.

For better performance, we recommended to clear log files when file size is above 100 MB.

Troubleshooting - Visual Studio Connection to QODBC

$
0
0

Troubleshooting - Visual Studio Connection to QODBC

Problem Description:

I am getting the following message from Visual Studio 2015 when trying to connect to QRemote using the ODBC data source:

"An error occurred while retrieving the information from the database: Column 'TABLE_CAT' does not belong to table Tables."

We unchecked the box on the server to run 2.1 ODBC compatibility.

The test connection works, and I can access the data using QRemote on my client machine, but I am not able to get this database to connect to Visual Studio.



Solutions:

Please query table directly instead of loading tables.

For Example:

select * from customer


Troubleshooting - How to convert Bit to Integer using QODBC

$
0
0

Troubleshooting - How to convert Bit to Integer using QODBC

Problem Description:

I am trying to get our ODBC extension module interface working with QODBC. Everything seems to work fine except trying to read SQL_BIT type fields. It causes the Script BASIC interface to error out.

I did a search on Google about the issue and others (Oracle, ...) have a similar issue. Do you have any way to translate the SQL_BIT type to a numeric or a CHAR(1)?

Solutions:

You can convert the Bit field to Integer using below query.

For Example:

In Customer table, IsActive field is of Bit datatype. We will convert it to numeric/integer using below query:

SELECT ListID, {fn CONVERT("IsActive", SQL_Integer)} AS "IsActive" FROM Customer

[Script BASIC Code]

IMPORT odbc.bas

dbh = odbc::RealConnect("QuickBooks Data","","")

odbc::query(dbh,"SELECT FullName, AccountNumber, {fn CONVERT(\"IsActive \", SQL_Integer)} AS \"IsActive\", Balance FROM Account")

FOR x = 1 to 5

odbc::FetchHash(dbh,dbcol)

PRINT Left(dbcol{"FullName"} & STRING(50," "),50),"\t",dbcol{"AccountNumber"},"\t",dbcol{"IsActive"},"\t",FORMAT("% ~-###,###.00~",dbcol{"Balance"}),"\n" NEXT

odbc::Close(dbh)


 

Troubleshooting - How to change status of Invoice in QuickBooks O...

$
0
0

Troubleshooting - How to change status of Invoice in QuickBooks Online

Problem Description:

I had inserted into table ReceivePaymentLine, but it not change status to "Paid"? How do I do it?

I using InvoiceLine for insert Item sales, and ReceivePaymentLine for payment



Solutions:

You can change Invoice status to paid by receiving payment for that Invoice. Please refer below sample query for receiving payment.

Insert into ReceivePaymentLine (CustomerRefListID,CustomerRefFullName, TxnDate, RefNumber, TotalAmount, PaymentMethodRefFullName,memo, DepositToAccountRefFullName, AppliedToTxnTxnID, AppliedToTxnPaymentAmount) values ('YourCustomerRefListID','YourCustomerRefFullName', 'YourTxnDate',' RefNumber which you want to use', YourTotalAmount, 'YourPaymentMethodRefFullName','Yourmemo', 'YourDepositToAccountRefFullName', 'TxnID of Invoice', 'Invoice Amount')

AppliedToTxnTxnID = TxnID of Invoice

AppliedToTxnPaymentAmount = Invoice Amount

For Example:

Insert into ReceivePaymentLine (CustomerRefListID,CustomerRefFullName, TxnDate, TotalAmount, PaymentMethodRefFullName,memo, DepositToAccountRefFullName, AppliedToTxnTxnID, AppliedToTxnPaymentAmount) values ('1951','CSS Online',{d'2013-02-05'},'1044',40.00,'Cash','Payment 2914','Undeposited Funds','3994',40.00)





How do I change InvoiceLineItem from InvoiceLineItemRefFullName1 ...

$
0
0

How do I change InvoiceLineItem from InvoiceLineItemRefFullName1 to InvoiceLineItemRefFullName2

Problem:

How do I go about replacing all Invoices that contain the InvoiceLineItemRefFullName "Framing" with the InvoiceLineItemRefFullName "Installation"

First we will fetch data from InvoiceLine table whose InvoiceLineItemRefFullName is "Framing":

By Quering:

Select TxnID,TxnDate,RefNumber,InvoiceLineItemRefListID,InvoiceLineItemRefFullName from invoiceline where InvoiceLineItemRefFullName='Framing'

 

Note: Invoice have different TxnID,TxnDate & RefNumber.

Solution:

By executing below update statement in VB Demo, We are able to change InvoiceLineItemRefFullName "Framing" with the InvoiceLineItemRefFullName "Installation"

Update invoiceline set InvoiceLineItemRefFullName='Installation' where InvoiceLineItemRefFullName='Framing'

We changed InvoiceLineItem from "Framing" to "Installation".

 

Refresh on MS Excel fails

$
0
0

Refresh on MS Excel fails

Problem:

MS Excel shows data protection error when we click on "Refresh All" link.

 

When you click on "OK" you will see below error.

Solution:

You are receiving this error because your Excel sheet is in Protected Mode.

When the worksheet is protected, all cells are locked by default, which means that they cannot be edited.

You need to Unprotect worksheet by clicking "Unprotect" link from File>>Info Tab In MS Excel 2010.

After removing protection, you can Refresh Data through "Refresh All" link.

Also Refer:
How to Use QODBC with MS Excel 2007
Using QuickBooks Data with Excel 2013 32-bit
How to Configure QODBC to Work With 64-bit MS Excel

How to get Conversion Ratio information from UnitOfMeasureSetRela...

$
0
0

How to get Conversion Ratio information from UnitOfMeasureSetRelatedUnit Table in QODBC

Conversion ratio information is stored in a table called UnitOfMeasureSetRelatedUnit.

Problem:

How to get Conversion Ratio information from UnitOfMeasureSetRelatedUnit Table in QODBC.

Solution:

We can get conversion ratio information by using INNER JOIN on SalesOrderLine Table.

We can get conversion ratio information by comparing UnitOfMeasureSetRelatedUnit.ListID and SalesOrderLine.ListID

Please refer below mentioned query for conversion ratio information:

Select S.RefNumber,S.TxnDate,S.SalesOrderLineItemRefFullName,S.SalesOrderLineQuantity,
S.SalesOrderLineRate,U.UnitOfMeasureType, U.Name, U.BaseUnitName,U.RelatedUnitName,
U.RelatedUnitConversionRatio From UnitOfMeasureSetRelatedUnit U
INNER JOIN SalesOrderLine S ON S.SalesOrderLineOVerrideUOMSetRefListID = U.ListID


How to run QODBC applications on a repeating/nightly basis

$
0
0

How to use QODBC with Windows scheduler /  How to use KA-Firetask with QODBC / How to run QODBC applications on a repeating/nightly basis

 

Problem Description 1:

My application needs read data from QuickBooks and update data in SQL server, up-to this I can able to handle everything. But I need solution for task scheduler, my need is my application needs to run every one hour through task scheduler, I'm trying this, but it saying error message like:

"Could not start QuickBooks"

 

Problem Description 2:

I have a batch file that runs a query using the QODBC driver. It runs perfectly when I logged in, but when I run it as scheduled task I get this error:

Unable to connect to Quick Books Connection String: DSN=BPCQB_PROD_batch;DFQ=;OpenMode=F;SERVER=QODBC, OLE Automation Error. The source is Microsoft OLE DB Provider for ODBC Drivers." [QODBC] Server Edition of QODBC is required to use the DCOM Servers."

SQLConnect [QODBC] QB Begin Session Failed. Error = 8004041c, An internal QuickBooks error occurred while trying to access the QuickBooks company data file.

 

Solution :

 

Windows Scheduler has changed from Desktop base to Service based from Vista or Win7 onwards, and the new OS has the Scheduler as Service based. 

QuickBook and QODBC are desktop base application/driver.

QODBC uses QuickBooks SDK, and QuickBooks SDK uses QuickBooks Application to get data from company file.

QuickBooks SDK requires an active desktop session ( someone to is logged in ) to the machine because QuickBooks is a desktop base application. If no one logged on the server/machine, you will get the error "Could not start QuickBooks".

Even if you have specified the username/password and have a user logged into the machine, you may notice the same error.  This is because task executed from Task Scheduler runs as a different user / new session.

The workaround is to use a Desktop Based Scheduler like KA FireTask or http://alternativeto.net/software/task-scheduler/?platform=windows.

 

How to use KA-Firetask with QODBC

You can download KA Firetask from below mentioned link:

Download KA Firetask

After downloading KA Firetask, please install it on your machine.

After Installation please start KA Firetask and add task by "New Task" button.

 

Please enter Task Title, Task timings (when the task should be executed?), Task action, File location then save task by clicking "OK" button.

In this example, I am scheduling VBA script which fetch data from QuickBooks.

 

Click Ok to save the job.  You can view all the scheduled tasks under the tab "Tasks"

 


 

Troubleshooting - QRemote does not work with IIS

$
0
0

Troubleshooting - QRemote does not work with IIS

Problem Description:

We’ve been having steady success with QODBC for a good while. We’re running QB on a VM and our custom application that queries it on another VM, both VMs are Server 2012.

All was well with our integration until I changed, by necessity, the setting for Enable 32-Bit Applications. Once I made it True, the integration through QRemote does not work. VB Demo still works on the Client just fine. It is a 32 bit app. I’m confused why our custom application worked fine when 32 Bit was False but not when 32 Bit was made True. I would have figured it was the other way around.

I looked at several articles on configuring QODBC to work with 64 bit applications but that’s not exactly what we’re doing here. What is the simplest remedy to get our application with Enable 32 Bit = True to work with the QRemote Server? I know the server is setup fine as VB Demo on the client works fine.

Solutions:

I guess you are using IIS.

When you set Enable 32-Bit Applications = True, your iis app pool runs as 32 bit.

You need to change the connection string to "QuickBooks Data QRemote"

When Enable 32-Bit Applications = False , means it will run as 64 bit.

You need to use connection string as "QuickBooks Data 64-bit QRemote"

Troubleshooting - QODBC Driver dropping a few transactions on ins...

$
0
0

Troubleshooting - QODBC Driver dropping a few transactions on insert to InvoiceLines

Problem Description:

We seem to be having an issue with an insert into the InvoiceLines table dropping a few transactions.

We needs to create about 1000 invoices per month, with an average of about 6 - 7 lines per invoice. As QuickBooks cannot really handle a set-based insert, we have used a cursor to insert the invoice lines and generate an invoice customer by customer (using the FQSaveToCache flag as the trigger. The code is as follows:

SET NOCOUNT ON

DECLARE curOutput CURSOR FOR SELECT CustomerRefListID,TemplateRefListID,TxnDate,TermsRefListID,CustomerMsgRefListID,InvoiceLineItemRefListID,InvoiceLineQuantity,InvoiceLineRate,InvoiceLineAmount,FQSavetoCache FROM dbo.QBQODBC_INVOICEPOSTINGDATA WHERE CustomerRefListID IS NOT NULL ORDER BY CustomerRefListID, FQSavetoCache DESC
DECLARE @CustomerID VARCHAR(100)
DECLARE @TemplateID VARCHAR(100)
DECLARE @TransactionDate DATETIME
DECLARE @CustomerTermsID VARCHAR(100)
DECLARE @CustomerMsgID VARCHAR(100)
DECLARE @ItemID VARCHAR(100)
DECLARE @Quantity DECIMAL(18,2)
DECLARE @Rate DECIMAL(18,2)
DECLARE @Amount DECIMAL(18,2)
DECLARE @QBFlag INT
DECLARE @i INT
SET @i = 0

OPEN curOutput
FETCH NEXT
FROM curOutput

INTO @CustomerID,@TemplateID,@TransactionDate,@CustomerTermsID,@CustomerMsgID,@ItemID,@Quantity,@Rate,@Amount,@QBFlag; --Subroutine for QB insert
WHILE @@FETCH_STATUS = 0

BEGIN
INSERT INTO QREMOTE...INVOICELINE (CustomerRefListID,TemplateRefListID,TxnDate,TermsRefListID,CustomerMsgRefListID,InvoiceLineItemRefListID, InvoiceLineQuantity,InvoiceLineRate,InvoiceLineAmount,FQSaveToCache)
VALUES( @CustomerID, @TemplateID, @TransactionDate, @CustomerTermsID, @CustomerMsgID, @ItemID, @Quantity, @Rate, @Amount, @QBFlag )
SET @i = @i + 1
IF @QBFlag = 0 and @i > 500
BEGIN
WAITFOR DELAY '00:05:00'
set @i = 0
END

PRINT 'Transaction quantity of ' + CAST(@Quantity AS VARCHAR(12)) + ' for item ID ' + @ItemID + ' for customer ID ' + @CustomerID + ' is now posted.'
FETCH NEXT
FROM curOutput
INTO @CustomerID, @TemplateID, @TransactionDate, @CustomerTermsID, @CustomerMsgID, @ItemID, @Quantity, @Rate, @Amount, @QBFlag ; END
--End subroutine for QB insert

CLOSE curOutput
DEALLOCATE curOutput

Our original code was identical to the above, with the exception of it did not include the WAITFOR DELAY code that is triggered every time the FQSavetoCache flag is set to zero. The code works beautifully and has successfully created invoices in QuickBooks for hundreds of customers.

Unfortunately, we are only at about a 97 - 98% success rate in the accuracy of the invoices being generated, and the issue seems to be the inability of QuickBooks (or the QODBC driver) to keep up with the data being fed from our SQL Server table (which we have verified is 100% accurate). I thought that adding the 10 second delay when the FQSavetoCache flag was set to zero would resolve the issue, but it has not. If the 10-second delay doesn't seem to work when the flag is zero, I could of course set the delay to wait for a second or two after each row of data.

http://support.flexquarters.com/esupport/newimages/Drop/step1.png

Do you have any suggestions? Please advise.

Solutions:

We did troubleshooting and found SQL Server is sending the Disconnect command every 5 minutes. The disconnect command is not expected from SQL Server when there is activity on the linked server. This is not a QODBC or QRemote issue.

[forums.sqlteam.com]SQL Server Linked Server to ODBC Connection Drops connection every 4-5 minutes

[social.technet.microsoft.com]SQL Server Linked Server to ODBC Connection Drops connection every 4-5 minutes

[forums.sqlteam.com]Is there a way to Disconnect Linked Server connection - Not delete and re-add

[social.technet.microsoft.com]Is there a way to Disconnect Linked Server connection - Not delete and re-add

There seems to be no option in SQL Server or do not cause of why SQL Server is sending Disconnect command.

We can't use MS Access as middleware because MS Access as a middleware has same issue.

Workaround 1:

As a workaround, You can add some timing logic on the looping like if the header insert is completed if it is 4 minutes, will sleep for 1 minute & 10 seconds. Sleep of 1 minute & 10 seconds will automatically send disconnect command and resumed after 1 minutes. By doing so, you noticed no loss of invoice line But yes inserting time increase due to sleep.

Please use below script:

SET NOCOUNT ON

DECLARE curOutput CURSOR FOR SELECT CustomerRefListID,TemplateRefListID,TxnDate,TermsRefListID,CustomerMsgRefListID,InvoiceLineItemRefListID,InvoiceLineQuantity,InvoiceLineRate,InvoiceLineAmount,FQSavetoCache FROM dbo.QBQODBC_INVOICEPOSTINGDATA WHERE CustomerRefListID IS NOT NULL ORDER BY CustomerRefListID, FQSavetoCache DESC
DECLARE @CustomerID VARCHAR(100)
DECLARE @TemplateID VARCHAR(100)
DECLARE @TransactionDate DATETIME
DECLARE @CustomerTermsID VARCHAR(100)
DECLARE @CustomerMsgID VARCHAR(100)
DECLARE @ItemID VARCHAR(100)
DECLARE @Quantity DECIMAL(18,2)
DECLARE @Rate DECIMAL(18,2)
DECLARE @Amount DECIMAL(18,2)
DECLARE @QBFlag INT
DECLARE @i INT
DECLARE @firstTime datetime
DECLARE @currentTime datetime
SET @i = 0
set @firstTime=GETDATE();
set @currentTime=GETDATE();

OPEN curOutput
FETCH NEXT
FROM curOutput
INTO @CustomerID,@TemplateID,@TransactionDate,@CustomerTermsID,@CustomerMsgID,@ItemID,@Quantity,@Rate,@Amount,@QBFlag;
--Subroutine for QB insert
WHILE @@FETCH_STATUS = 0

BEGIN
INSERT INTO QRemote...INVOICELINE (CustomerRefListID,TemplateRefListID,TxnDate,TermsRefListID,CustomerMsgRefListID,InvoiceLineItemRefListID, InvoiceLineQuantity,InvoiceLineRate,InvoiceLineAmount,FQSaveToCache)
VALUES( @CustomerID, @TemplateID, @TransactionDate, @CustomerTermsID, @CustomerMsgID, @ItemID, @Quantity, @Rate, @Amount, @QBFlag )

PRINT 'Transaction quantity of ' + CAST(@Quantity AS VARCHAR(12)) + ' for item ID ' + @ItemID + ' for customer ID ' + @CustomerID + ' is now posted.'
set @currentTime=GETDATE();

IF @QBFlag = 0 and ((SELECT DATEDIFF(ss,@firstTime,@currentTime))> 240) --240=4 minutes. 270=4:30minutes

BEGIN
PRINT 'It is Sleep time ' + CAST(@QBFlag AS VARCHAR(12)) + ' for @firstTime : ' + CONVERT(nvarchar(90), @firstTime, 21) + ' @currentTime :' + CONVERT(nvarchar(90), @currentTime, 21) + ' ------. '
WAITFOR DELAY '00:01:10'
set @firstTime=GETDATE();
set @currentTime=GETDATE();
PRINT 'Wake up time ' + CAST(@QBFlag AS VARCHAR(12)) + ' for @firstTime : ' + CONVERT(nvarchar(90), @firstTime, 21) + ' @currentTime :' + CONVERT(nvarchar(90), @currentTime, 21) + ' ------. '
END

FETCH NEXT
FROM curOutput
INTO @CustomerID, @TemplateID, @TransactionDate, @CustomerTermsID, @CustomerMsgID, @ItemID, @Quantity, @Rate, @Amount, @QBFlag ;
END

--End subroutine for QB insert
CLOSE curOutput
DEALLOCATE curOutput

Workaround 2:

You can use another workaround as below:

1) Insert an Invoice Line along with Invoice header fields with FQSaveToCache as 0. This will create an invoice in QuickBooks.

2) Get the Last Insert ID of the Invoice.

3) Using a loop for the rest of the invoice line, Insert each of the Invoice line to the existing Invoice by Passing TxnID & with FQSaveToCache as 0 in the insert statement. This will update the existing invoice and add a new line item.

As we above solution does not use FQSaveToCache, SQL Server Disconnect issue will not affect.

Please use below script:

SET NOCOUNT ON

DECLARE curOutput CURSOR FOR SELECT CustomerRefListID,TemplateRefListID,TxnDate,TermsRefListID,CustomerMsgRefListID,InvoiceLineItemRefListID,InvoiceLineQuantity,InvoiceLineRate,InvoiceLineAmount,FQSavetoCache FROM dbo.QBQODBC_INVOICEPOSTINGDATA WHERE CustomerRefListID IS NOT NULL ORDER BY CustomerRefListID, FQSavetoCache DESC DECLARE @CustomerID VARCHAR(100)
DECLARE @TemplateID VARCHAR(100)
DECLARE @TransactionDate DATETIME
DECLARE @CustomerTermsID VARCHAR(100)
DECLARE @CustomerMsgID VARCHAR(100)
DECLARE @ItemID VARCHAR(100)
DECLARE @Quantity DECIMAL(18,2)
DECLARE @Rate DECIMAL(18,2)
DECLARE @Amount DECIMAL(18,2)
DECLARE @QBFlag INT
DECLARE @i INT
DECLARE @txnID VARCHAR(100)
SET @i = 0
OPEN curOutput
set @txnID =''
FETCH NEXT
FROM curOutput
INTO @CustomerID,@TemplateID,@TransactionDate,@CustomerTermsID,@CustomerMsgID,@ItemID,@Quantity,@Rate,@Amount,@QBFlag;
--Subroutine for QB insert
WHILE @@FETCH_STATUS = 0
BEGIN

if @txnID =''
begin
INSERT INTO QRemote...INVOICELINE (CustomerRefListID,TemplateRefListID,TxnDate,TermsRefListID,CustomerMsgRefListID,InvoiceLineItemRefListID, InvoiceLineQuantity,InvoiceLineRate,InvoiceLineAmount,FQSaveToCache) VALUES( @CustomerID, @TemplateID, @TransactionDate, @CustomerTermsID, @CustomerMsgID, @ItemID, @Quantity, @Rate, @Amount, 0 )
--Get the Last inserted it

Set @txnid= (select LastInsertId from openquery(QRemote,'sp_lastinsertid InvoiceLine'))

end

else

begin
INSERT INTO QRemote...INVOICELINE (txnID,CustomerRefListID,TemplateRefListID,TxnDate,TermsRefListID,CustomerMsgRefListID,InvoiceLineItemRefListID, InvoiceLineQuantity,InvoiceLineRate,InvoiceLineAmount,FQSaveToCache)
VALUES( @txnID,@CustomerID, @TemplateID, @TransactionDate, @CustomerTermsID, @CustomerMsgID, @ItemID, @Quantity, @Rate, @Amount, 0 )
end

if @QBFlag=0
begin
set @txnID =''
end

PRINT 'Transaction quantity of ' + CAST(@Quantity AS VARCHAR(12)) + ' for item ID ' + @ItemID + ' for customer ID ' + @CustomerID + ' is now posted.' FETCH NEXT FROM curOutput INTO @CustomerID, @TemplateID, @TransactionDate, @CustomerTermsID, @CustomerMsgID, @ItemID, @Quantity, @Rate, @Amount, @QBFlag ; END
--End subroutine for QB insert

CLOSE curOutput
DEALLOCATE curOutput

 

Troubleshooting - QODBC Connection to Talend Open Studio

$
0
0

Troubleshooting - QODBC Connection to Talend Open Studio

Problem Description:

QuickBooks Enterprise comes with a tool called QODBC that enables connecting to a QB database to read and write data. I have installed it, and I can successfully see QB data by connecting with Excel.

I am attempting to be able to read data in Talend Open Studio 5.4.1 by using the Generic ODBC connector. I can get a successful connection message when setting up the database connection, but when retrieving the schema to see the tables, it shows with no tables. There are no errors or any other indication - just no table listing.

http://support.flexquarters.com/esupport/newimages/Talend/step1.png

Solutions:

Please query table directly instead of loading tables. Use a tDBInput component, and use a SELECT query & Click on "Guess Schema"

For Example:

select * from customer

Troubleshooting - QODBC Auto-connecting with Wrong User

$
0
0

Troubleshooting - QODBC Auto-connecting with Wrong User

Problem Description:

We have a few stations where we utilize the read only QODBC desktop version. On a station that we just built, it keeps to using the wrong Quickbooks user for the auto-login. I confirmed that the Quickbooks file is set to use the correct user for QODBC, and I also confirmed that our other stations are still connecting using the correct user; the issue is only with this one station.

QODBC seems to be otherwise working as expected. This isn't a usable state, however, as this station is reverting to a user with a different level of privileges on the system.

Solutions:

Please remove all the integrated applications via:

QuickBooks UI -> Edit -> Preferences -> Integrated Applications -> Company Preferences and re-connect QODBC again to see if it can solve the issue.

Please Refer:

How to remove QODBC Related Certificates from Integrated Application Under QuickBooks

Please Note: If QuickBoooks is running and a user is logged in, user specified in the Integration will be ignored and currently logged in user on QuickBooks will be used.

When QuickBooks is not running and you try to connect using QODBC auto login, then it will login to QuickBooks with the user that has been selected in the Integration settings in the Quickbooks file. But when QuickBooks is running and you try to connect using QODBC auto login, then it will login to QuickBooks with the user which is logged in the QuickBooks file.


 

Troubleshooting - How to get VBA to execute two statements at the...

$
0
0

Troubleshooting - How to get VBA to execute two statements at the same time

Problem Description:

We are using a Visual Basic app which works with an SQL Server database to write data to QB through QODBC. We are executing two SQL statements as described in your help. We are getting an error saying either:

1) The transactions are not in balance - meaning it seems that both transactions are not being executed at the same time or

2) If we try to combine the two text strings into one SQL server statement that "missing semicolon at end of SQL statement"

Solutions:

You are getting transaction not in balance error, because only one statement is executed. You should execute both statements one by one.

You cannot run both the statement on the same time, you have to run it one after the other.

Also, connection should not be closed between execution of two queries. If connection closed, then you will face the error.

Please refer below mentioned sample VBA code for executing two statement one after the other:

Public Sub exampleInsert()

Const adOpenStatic = 3

Const adLockOptimistic = 3

Dim oConnection

Dim oRecordset

Dim sMsg

DoCmd.RunSQL " INSERT INTO JournalEntryCreditLine(refnumber,journalcreditlineaccountreffullname,JournalCreditLineAmount,JournalCreditLineMemo,FQSaveToCache) Values ('1234','operating1',555.00,'test memo transfer cred',1)”

DoCmd.RunSQL " INSERT INTO JournalEntryDebitLine(refnumber,JournalDebitLineAccountReffullname,JournalDebitLineAmount,JournalDebitLineMemo,FQSaveToCache) VALUES ('1234','operating2',555.00,'Test Memo transfer deb',0)"


sMsg = sMsg & "Record Added!!!"

MsgBox sMsg

Set oRecordset = Nothing

Set oConnection = Nothing

End Sub


Troubleshooting - How to use QODBC on MAC

$
0
0

Troubleshooting - How to use QODBC on MAC

Problem Description:

I have MAC Operating System & I want to use QODBC on it. Is it possible to use QODBC on MAC?

Solutions:

Yes, you can use QODBC on MAC. But you have to load some tools to use it. You can use Parallels or a similar program to allow Windows apps to run under Mac OS.

Or

You can install Windows alongside MacOS to run on the same machine. You can install Windows software on Linux or run Windows programs on a Chromebook. Virtual machines, dual-booting, the Wine compatibility layer.

Please refer below-mentioned link for more details:

5 Ways to Run Windows Software on a Mac

Also There are not many MAC apps support ODBC as a data source, so you will need to use Windows app for that purpose but they can run on a mac with the tools listed above.

 


Connecting QODBC Online Driver to QuickBooks Online for the First...

Troubleshooting - QODBC licensing issues with Windows 10 upgrades

$
0
0

Troubleshooting - QODBC licensing issues with Windows 10 upgrades

Problem Description:

I want to upgrade my Operating System to Windows 10 and want to know is there any precautions/actions required for QODBC to keep working. 

Solutions:

Steps before upgrading to Windows 10:

Please follow the steps below before upgrading the Operating System to Windows 10.

1). Deactivate QODBC license with the CD Key from:

Start >> All Programs >> QODBC Driver for use with QuickBooks >> Configure QODBC Data Source >> Go To "System DSN" Tab >> select QuickBooks Data >> click "configure" >> switch to activate/deactivate >> click "deactivate"

Please refer to the link below for Deactivating the QODBC license.

How to activate/deactivate QODBC

It is highly recommended that you deactivate the license before upgrading the OS.

2). Uninstall QODBC from:

Start >> All Programs >> QODBC Driver for use with QuickBooks >> Uninstall QODBC

Follow uninstall steps & uninstall QODBC.

3). Upgrade the OS to Windows 10.

4). After upgrading the OS to Windows 10, please refer to the link below for installing QODBC and follow the steps:

Connecting QODBC Driver to QuickBooks for the First Time (Video)

5) After the successful installation of QODBC, please activate the QODBC license with the CDKey from:

Start >> All Programs >> QODBC Driver for use with QuickBooks >> Configure QODBC Data Source >> Go To "System DSN" Tab >> select QuickBooks Data >> click "configure" >> switch to activate/deactivate >> click "activate"

Please refer to the link below for Activating the QODBC license.

How to activate/deactivate QODBC

Problem Description:

I have upgraded my system to windows 10 and after upgrading the the OS I am facing licensing issues. I have a QODBC license, but my QODBC Setup Screen >> About tab says Evaluation Version has expired. 

Please help me on this issue.

Solutions:

Steps after upgrading to Windows 10:

If you did not deactivate the license and have already upgraded windows directly and are unable to use QODBC, then please follow these steps:

1). Try to run QODBC Setup Screen as "Run as Administrator" from:

Start >> All Programs >> QODBC Driver for use with QuickBooks >> right click on QODBC Setup Screen and "Run as Administrator".

If above does not resolve issue, then please follow the steps below:

2). Please try to Deactivate the license with the CD Key from:

Start >> All Programs >> QODBC Driver for use with QuickBooks >> Configure QODBC Data Source >> Go To "System DSN" Tab >> select QuickBooks Data >> click "configure" >> switch to activate/deactivate >> click "deactivate"

3). Please try to Activate QODBC with the CD Key from:

Start >> All Programs >> QODBC Driver for use with QuickBooks >> Configure QODBC Data Source >> Go To "System DSN" Tab >> select QuickBooks Data >> click "configure" >> switch to activate/deactivate >> click "activate"

Please activate with the CD Key, after the successful activation please test the connection with QuickBooks using the VB Demo.

Please refer to the link below for Activate/Deactivate QODBC license.

How to activate/deactivate QODBC

If you encounter "CD Key Exhausted" message, wait for 24-48 hours and then try to Activate license.

If you are still facing licensing issues or unable to deactivate QODBC, raise a support ticket with "Sales - Registration - Activation Department"

Click Here for raising a support ticket.

 

 

Troubleshooting - How do I build a connection string with all the...

$
0
0

General Connection String

Instructions

      The most difficult part of using QRemote in programming is the connection string. The simplest form includes a reference to a DSN. A system DSN called "QuickBooks Data QRemote" for 32 Bit application & "QuickBooks Data 64-Bit QRemote" for 64 Bit application is automatically created when QODBC is installed. "QuickBooks Data QRemote" will be used in all examples but can be substituted with any different DSN name you create.

      Normally ADO pools connections. QRemote does not support connection pooling. It is recommended to tell ADO to not do connection pooling on any QRemote connection. This is done with OLE DB Services=-2.

Parameters available on the connection string

bullet IP Address = IP address of QRemote Server.

bullet Port = IP address of QRemote Server.

bullet EncryptionKey = Encryption Key setted in QRemote Server. (If you have set Encryption Key in QRemote Server.) By default it is blank.

bullet RemoteDSN = Remote DSN which you want to use. By default it is "QuickBooks Data".

bullet OLE DB Services=-2

Example of simple DSN
32-Bit:
sConnectString = "DSN=Quickbooks Data QRemote;OLE DB Services=-2;"

64-Bit:
sConnectString = "DSN=Quickbooks Data 64-Bit QRemote;OLE DB Services=-2;"

Example of a DSNless connection string
Without Encryption Key:
sConnectString = "Driver={QRemote for QuickBooks};OLE DB Services=-2;IPAddress=127.0.0.1;Port=4500;RemoteDSN=QuickBooks Data;"

With Encryption Key:(Replace 123456 with your Encryption Key value)
sConnectString = "Driver={QRemote for QuickBooks};OLE DB Services=-2;IPAddress=127.0.0.1;Port=4500;EncryptionKey=123456;RemoteDSN=QuickBooks Data;"

Standard syntax
"Driver={QRemote for QuickBooks};OLE DB Services=-2;IPAddress=127.0.0.1;Port=4500;"

 

Troubleshooting - How to use QODBC with multiple QuickBooks Compa...

$
0
0

Troubleshooting - How to use QODBC with multiple QuickBooks Company file

Problem Description:

I have a question about setting ODBC to auto login. We have two different company files for accounting purpose. I am trying to automate some of the tasks and I wanted to auto login. If I set the path in the odbc to the company file how do I change this to access the second company.

Solutions:

There is a limitation with the QuickBooks SDK that it can connect only 1 company file at a time on a machine. QODBC using QuickBooks SDK & QRemoteServer uses QODBC thus you will able to open one company file at a time on a machine.

Yes, you can create multiple DSN that is pointing to different company files and use this DSN in your configuration.

Please refer below steps for creating multiple DSN that is pointing to different company files.

1) Create a new DSN.

For Example: You have Company file "A" and let us create DSN for Company "A" with DSN name "CompA". Please refer below mentioned article for creating DSN:

How to create or configure a QODBC DSN

2) Setup auto login to QuickBooks using QODBC.

Please refer below mentioned article for configuring auto login to QuickBooks using QODBC

How to setup QODBC Driver to auto-connect to QuickBooks (Video).

How to setup QODBC for auto-login into QuickBooks.

Let us repeat step 1 & 2 for Company file "B".

1) Create a new DSN.

Create DSN for Company "B" with DSN name "CompB". Please refer below mentioned article for creating DSN:

How to create or configure a QODBC DSN

2) Setup auto login to QuickBooks using QODBC.

Please refer below mentioned article for configuring auto login to QuickBooks using QODBC

How to setup QODBC Driver to auto-connect to QuickBooks (Video).

How to setup QODBC for auto-login into QuickBooks.

Use DSN in Applications:

We have created multiple DSN, now we use it in our application.

In this example, I am using DSN in VBA code. Please refer below sample code for using multiple DSN in VBA through QODBC:

Public Sub Test()

Const adOpenStatic = 3

Const adLockOptimistic = 3

Dim oConnection

Dim sConnectString

sConnectString = "DSN=CompA;OLE DB Services=-2;"

// Write your query here as per your requirements. //

Set oConnection = CreateObject("ADODB.Connection")

oConnection.Open sConnectString

oConnection.Close

Set oConnection = Nothing

Sleep(10)

sConnectString = "DSN=CompB;OLE DB Services=-2;"

// Write your query here as per your requirements. //

Set oConnection = CreateObject("ADODB.Connection")

oConnection.Open sConnectString

oConnection.Close

Set oConnection = Nothing

Sleep(10)

End Sub

 

Troubleshooting - How to Re-Link QuickBooks Data in MS Access usi...

$
0
0

Troubleshooting - How to Re-Link QuickBooks Data in MS Access using QODBC

Problem Description 1:

We are adding invoice records to QuickBooks using an Access front end.  When we create the records and try to insert into QB the line items seem to go but when the invoice header is inserted we get an error that the Child Record must be inserted before Header Record in BuildXMLHeader.  I have examined the data being passed and it all looks correct.

Problem Description 2:

I upgraded my QB Premier Plus Professional Services to 2016 (from 2014). I skipped updating to 2015.

I installed the new QODBC connector, but cannot connect to my access database. I have tried to uninstall the MS Access Database driver, But I get the error message ODBC call failed- Error 10004.

Problem Description 3:

I have MS Access database which contains QuickBooks Data as linked table. Recently I have changed my Optimizer file path & after changing Optimizer path I am facing slow performance issue.



How can I solve this issue?

 

Solutions:

 

You need to re-link MS Access linked table to resolve the issue. Delete old linked table & re-link it.

After changing optimizer file path, you need to Re-Link linked table in MS Access because your MS Access Linked table contains old Optimizer file path.

Please Note: Linked Table Manager in MS Access will not update Optimizer file path, you need to Re-Link linked table in MS Access to solve this issue.

Solution to this issue is to re-create the linked table.

Open MS Access Linked Table:

Right Click on the On Your Linked Table:



Now Click on the Delete.



Now Link the Same Table. After Linking the table, you will get Updated optimizer file path.

To view Optimizer file path & other table properties, hover your mouse over table name, So you can view table properties.

 

Please keep QuickBooks running, Logged in as Admin to your company file and try to connect again with MS Access.

Please refer below mentioned link for How to Create Linked Table In MS Access:

How to Use QODBC with Microsoft Access 2007

How to Use QODBC with Microsoft Access 2010

If above does not resolve the issue, then I kindly suggest you to download the latest QODBC version.

QODBC Download

Skip the CD Key Step during installation Restart the Machine after new version is installed (if prompted)

If Above Solutions doesn't work, please post a ticket to us and we will do a further investigation on your issue.

Tags: Relink linked tables, Relink table, Readd table, Re-Add linked tables, Refresh Linked tables, ODBC-Connection to 'QuickBooks Data' failed, #Deleted

Viewing all 313 articles
Browse latest View live