Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6882093
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T05:12:38+00:00 2026-05-27T05:12:38+00:00

I have an Excel 2003 VBA program that creates an SQL string that way:

  • 0

I have an Excel 2003 VBA program that creates an SQL string that way:

OrdresPlanif = ""
Do While Cells(i, 1).Value <> "CODES TEMPS"
    noOrdre = Cells(i, 4).Value
    If noOrdre <> "" Then
        OrdresPlanif = OrdresPlanif + "(Ordre.Ordre) <> " & noOrdre & " And " ' String for the orders shecduled
    End If
    i = i + 1
Loop
OrdresPlanif = Left(OrdresPlanif, Len(OrdresPlanif) - 5) ' Remove last "and" from string OrdresNonPlanif
SQLnonPlanif = "SELECT Ordre.Ordre, Sum(Ordre.Duree) AS SommeDeDuree" _
                & " FROM Ordre" _
                & " WHERE (((Ordre.Date) >= #" & Date1 & "# And (Ordre.Date) <= #" & Date2 & "#) AND (" & MatOrString & ") And (" & OrdresPlanif & "))" _
                & " GROUP BY Ordre.Ordre;"
Set rsNonPlanif = cn.Execute(SQLnonPlanif)

Problem is, there are about 100 ~ 150 noOrdre and ~15 MatOrString to add in the SQL statement. The error “SQL statement to complex” comes back from Access (2003). I have looked around for solutions but people are talking about concatenations alot but it doesn’t seem to be a viable solution for me since I create my string from a loop.
Is there a way to fix this problem? Or is my strategy wrong, to start with?

[EDIT]

here i add a sample query generated from my code. When I try to paste it in access it gives the same error.

SELECT Ordre.Ordre, Sum(Ordre.Duree) AS SommeDeDuree FROM Ordre WHERE
(((Ordre.Date) >= #07/11/2011# And (Ordre.Date) <= #14/11/2011#) AND
(Ordre.Matricule=257 OR Ordre.Matricule=516 OR Ordre.Matricule=591 OR
Ordre.Matricule=1797 OR Ordre.Matricule=1802 OR Ordre.Matricule=1828
OR Ordre.Matricule=2061 OR Ordre.Matricule=2070 OR
Ordre.Matricule=2085 OR Ordre.Matricule=2103 OR Ordre.Matricule=2142
OR Ordre.Matricule=2211 OR Ordre.Matricule=2344 OR
Ordre.Matricule=2436 OR Ordre.Matricule=2471 ) And ((Ordre.Ordre) <>
10000477 And (Ordre.Ordre) <> 11146074 And (Ordre.Ordre) <> 11146315
And (Ordre.Ordre) <> 11146662 And (Ordre.Ordre) <> 11146689 And
(Ordre.Ordre) <> 11147233 And (Ordre.Ordre) <> 11147616 And
(Ordre.Ordre) <> 11148129 And (Ordre.Ordre) <> 11147923 And
(Ordre.Ordre) <> 11147924 And (Ordre.Ordre) <> 11147925 And
(Ordre.Ordre) <> 11147192 And (Ordre.Ordre) <> 11147206 And
(Ordre.Ordre) <> 11147217 And (Ordre.Ordre) <> 11147219 And
(Ordre.Ordre) <> 11147220 And (Ordre.Ordre) <> 11147221 And
(Ordre.Ordre) <> 11147255 And (Ordre.Ordre) <> 11147263 And
(Ordre.Ordre) <> 11147265 And (Ordre.Ordre) <> 11147292 And
(Ordre.Ordre) <> 11147295 And (Ordre.Ordre) <> 11147297 And
(Ordre.Ordre) <> 11147298 And (Ordre.Ordre) <> 11147299 And
(Ordre.Ordre) <> 11147300 And (Ordre.Ordre) <> 11146863 And
(Ordre.Ordre) <> 11146864 And (Ordre.Ordre) <> 11147252 And
(Ordre.Ordre) <> 11147547 And (Ordre.Ordre) <> 11147550 And
(Ordre.Ordre) <> 11147551 And (Ordre.Ordre) <> 11147556 And
(Ordre.Ordre) <> 11147588 And (Ordre.Ordre) <> 11147594 And
(Ordre.Ordre) <> 11147595 And (Ordre.Ordre) <> 11147610 And
(Ordre.Ordre) <> 11147684 And (Ordre.Ordre) <> 11147685 And
(Ordre.Ordre) <> 11147696 And (Ordre.Ordre) <> 11147697 And
(Ordre.Ordre) <> 11147698 And (Ordre.Ordre) <> 11147699 And
(Ordre.Ordre) <> 11147700 And (Ordre.Ordre) <> 11147702 And
(Ordre.Ordre) <> 11147720 And (Ordre.Ordre) <> 11147972 And
(Ordre.Ordre) <> 11147974 And (Ordre.Ordre) <> 11147975 And
(Ordre.Ordre) <> 11147976 And (Ordre.Ordre) <> 11147977 And
(Ordre.Ordre) <> 11147978 And (Ordre.Ordre) <> 11147979 And
(Ordre.Ordre) <> 11147980 And (Ordre.Ordre) <> 11147983 And
(Ordre.Ordre) <> 11147985 And (Ordre.Ordre) <> 11147990 And
(Ordre.Ordre) <> 11147991 And (Ordre.Ordre) <> 12156143 And
(Ordre.Ordre) <> 12156147 And (Ordre.Ordre) <> 12156151 And
(Ordre.Ordre) <> 12155605 And (Ordre.Ordre) <> 12155606 And
(Ordre.Ordre) <> 12155607 And (Ordre.Ordre) <> 12155608 And
(Ordre.Ordre) <> 12155609 And (Ordre.Ordre) <> 12155610 And
(Ordre.Ordre) <> 12155611 And (Ordre.Ordre) <> 12155616 And
(Ordre.Ordre) <> 12155436 And (Ordre.Ordre) <> 12155437 And
(Ordre.Ordre) <> 12155438 And (Ordre.Ordre) <> 12155764 And
(Ordre.Ordre) <> 12155765 And (Ordre.Ordre) <> 12155444 And
(Ordre.Ordre) <> 12155429 And (Ordre.Ordre) <> 12155430 And
(Ordre.Ordre) <> 12155431 And (Ordre.Ordre) <> 12155433 And
(Ordre.Ordre) <> 12155434 And (Ordre.Ordre) <> 12155435 And
(Ordre.Ordre) <> 12155426 And (Ordre.Ordre) <> 12155427 And
(Ordre.Ordre) <> 12155604 And (Ordre.Ordre) <> 12155420 And
(Ordre.Ordre) <> 12155419 And (Ordre.Ordre) <> 12155412 And
(Ordre.Ordre) <> 12155538 And (Ordre.Ordre) <> 12155539 And
(Ordre.Ordre) <> 12155540 And (Ordre.Ordre) <> 12155541 And
(Ordre.Ordre) <> 12155542 And (Ordre.Ordre) <> 12155543 And
(Ordre.Ordre) <> 12155544 And (Ordre.Ordre) <> 12155545 And
(Ordre.Ordre) <> 12155546 And (Ordre.Ordre) <> 12155547 And
(Ordre.Ordre) <> 12155442 And (Ordre.Ordre) <> 12155440 And
(Ordre.Ordre) <> 12155441 And (Ordre.Ordre) <> 12155443 And
(Ordre.Ordre) <> 12155446 And (Ordre.Ordre) <> 12155445 And
(Ordre.Ordre) <> 12155448 And (Ordre.Ordre) <> 12154726 And
(Ordre.Ordre) <> 12154727 And (Ordre.Ordre) <> 12154728 And
(Ordre.Ordre) <> 12154729 And (Ordre.Ordre) <> 12154730 And
(Ordre.Ordre) <> 12155570 And (Ordre.Ordre) <> 12155704 And
(Ordre.Ordre) <> 12155935 And (Ordre.Ordre) <> 12155936 And
(Ordre.Ordre) <> 12155937 And (Ordre.Ordre) <> 12155938 And
(Ordre.Ordre) <> 12155939 And (Ordre.Ordre) <> 12155940 And
(Ordre.Ordre) <> 12155941 And (Ordre.Ordre) <> 12153256 And
(Ordre.Ordre) <> 13101358 And (Ordre.Ordre) <> 13101309 And
(Ordre.Ordre) <> 13212576)) GROUP BY Ordre.Ordre;

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T05:12:39+00:00Added an answer on May 27, 2026 at 5:12 am

    Instead of all of those ANDs and ORs you should use IN statements. For example,

    SELECT Ordre.Ordre, Sum(Ordre.Duree) AS SommeDeDuree 
    FROM Ordre 
    WHERE Ordre.Date >= #07/11/2011# 
      AND Ordre.Date <= #14/11/2011# 
      AND Ordre.Matricule In (257,516,591,...,2436,2471) 
      AND Ordre.Ordre Not In (10000477, 11146074, ... ,13101309,13212576)
    GROUP BY Ordre.Ordre;
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a program that spits out an Excel workbook in Excel 2003 XML
I have an Excel 2003 workbook that contains a macro to copy certain of
I have an excel 2003 vsto workbook that I would like to make available
I have created an Excel 2003 add-in that uses the CLR 2.0 and this
I have about 200 Excel files that are in standard Excel 2003 format. I
The scenario: we have a web system that automatically generates office 2003 excel files
Win-XP / Excel 2003 / VBA .... I have the following piece of code
I am writing an add-in for Excel 2003, using VBA. I have an Auto_Open
In Excel VBA (2003), I've noticed that any Public or Friend Sub method in
I've inherited some VBA code (non-.NET, Excel 2003) I have to modify. I want

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.