VBA SQL String. Выберите заявление не будет работать - PullRequest
1 голос
/ 09 ноября 2019

Может кто-нибудь помочь мне с синтаксисом в моей строке strSQL? Я получаю синтаксическую ошибку. Моя таблица называется "Лист1"

Sub runstatements()


Dim dbsaging As DAO.Database
Dim rstclient As DAO.Recordset
Dim strSQL As String

Set dbsaging = CurrentDb
strSQL = "SELECT * Sheet1.[CompanyID], Sheet1.[CustomerNumber], Sheet1.[Customer Name], Sheet1.[Pymnt Terms], Sheet1.[Associate Name], Sheet1.[Week End], Sheet1.[Doc Date], Sheet1.[Days Open], Sheet1.[Current], Sheet1.[31 - 60 Days], Sheet1.[61 - 90 Days], Sheet1.[91 - 120 Days], Sheet1.[121 and Over], Sheet1.[Balance] * FROM Sheet1"

Set rstclient = dbsaging.OpenRecordset(strSQL)

End Sub

1 Ответ

0 голосов
/ 09 ноября 2019

(неквалифицированный) * в SELECT означает «каждый столбец каждой таблицы в предложении FROM».

Вы могли бы синтаксически обрабатывать его как поле и выполнятьSELECT *, CompanyID, CustomerNumber, ... включив его в список полей , разделенных запятыми *1009* (который даст вам все поля, за которыми следуют поля, которые вы явно выбрали).

Без запятой это синтаксическая ошибкапотому что после имени поля в списке SELECT механизм запросов ожидает либо псевдоним (As SomeOtherName), запятую (за которой следует другое имя поля), либо предложение FROM.

Наилучшее избегание * в списках SELECT. Просто удалите его (он у вас есть в двух местах), и синтаксическая ошибка исчезнет. Обратите внимание, что квалификатор Sheet1 на самом деле не нужен, поскольку в предложении FROM есть только 1 таблица. Также, если возможно, подумайте о переименовании столбцов, чтобы они все последовательно PascalCase без пробелов и специальных символов - и тогда вы сможете избавиться от этих надоедливых [square brackets] тоже.

strSQL = "SELECT [CompanyID], [CustomerNumber], [Customer Name], [Pymnt Terms], [Associate Name], [Week End], [Doc Date], [Days Open], [Current], [31 - 60 Days], [61 - 90 Days], [91 - 120 Days], [121 and Over], [Balance] FROM Sheet1"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...