SQL в функции VBA - PullRequest
       13

SQL в функции VBA

1 голос
/ 22 февраля 2010

У меня есть функция VBA, и я хочу добавить следующий SQL, однако, будучи новичком, я не знаю, как разбить запрос в коде.

Запрос:

 strSQL = "select (SELECT COUNT (DISTINCT CUSTOMER_ACCOUNT.ID) AS NUMBER_OF_ACCOUNTS_NOT_DELETED FROM       CUSTOMER_ACCOUNT INNER JOIN
ACCOUNT ON CUSTOMER_ACCOUNT.ACCOUNT_ID=ACCOUNT.ID
 WHERE
Convert(datetime,convert(char(10),[CUSTOMER_ACCOUNT].CREATED_ON,101))
BETWEEN '2009-01-01' AND '2009-12-31' AND  CUSTOMER_ACCOUNT.DELETED!='1' AND      ACCOUNT.DELETED !='1'
)
-
(SELECT    COUNT (DISTINCT dLOAD_ACCOUNT_DETAIL.ACCOUNT_NUMBER) AS NOT_ACTIVE_ACCOUNTS

FROM         dbo.LOAD_ACCOUNT_DETAIL LEFT OUTER JOIN
                  ACCOUNT ON dbo.LOAD_ACCOUNT_DETAIL_0.ID = dbo.ACCOUNT.ID WHERE
ACCOUNT_STATUS !='1') AS DIFFERENCE 

но все это в кавычках не работает ...!

Ответы [ 3 ]

2 голосов
/ 23 февраля 2010

В зависимости от того, как вы выполняете запрос, вам часто приходится разбивать запрос на более мелкие куски (менее ~ 200 символов, я забыл точную сумму).

Это делается путем разбиения его на массив строк:

Или:

QueryArry = Array("Your ","Query ","here ")

При использовании метода Марга это становится:

QueryArry = Array("Your ", _
    "Query ", _
    "here ")

Или вы можете сделать это так:

Dim QueryArry(0 to 100) as String
QueryArry(0)="Your "
QueryArry(1)="Query "
QueryArry(2)="Here "

ПРЕДУПРЕЖДЕНИЕ : В каждом случае обязательно добавляйте пробел перед концом каждой цитаты ... потому что эти строки добавляются вместе, и без лишнего пробела будет "Ваш запрос" вместо "Ваш запрос Здесь».

Dan

1 голос
/ 26 февраля 2010

Вы также можете разбить его так:

strSQL = "select ( "
strSQL = strSQL & "SELECT COUNT (DISTINCT CUSTOMER_ACCOUNT.ID) AS NUMBER_OF_ACCOUNTS_NOT_DELETED FROM       CUSTOMER_ACCOUNT INNER JOIN "
strSQL = strSQL & "ACCOUNT ON CUSTOMER_ACCOUNT.ACCOUNT_ID=ACCOUNT.ID "
...

Я предпочитаю этот способ вместо strSQL = "..." & _ "..." & _ "..." по нескольким строкам, но potato / potato ...

1 голос
/ 22 февраля 2010
Dim myString As String

myString = "You can " & _
    "use '& _' to concatenate " & _
    "strings over multiple lines."
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...