Любые ссылки / руководства по SQL в EXCEL с Microsoft OLE DB Provider для Jet 4.0?

есть ли ссылки / руководства по синтаксису SQL в EXCEL, связанные с Microsoft OLE DB Provider for Jet 4.0?

Например, как писать константы даты типа?

Какие ключевые слова / функции / предложения доступны?

При использовании Excel в качестве источника данных Jet 4.0 лучшая ссылка, которую я знаю, это:

Как использовать ADO с данными Excel из Visual Basic или VBA .

Особое значение имеет то, как общий тип данных существующего столбца определяется, когда он содержит смешанные типы данных .

Что касается Microsoft OLE DB Provider for Jet 4.0, наиболее актуальной является статья:

Свойства и параметры поставщика ADO: Свойства поставщика Microsoft Jet 4.0

Тем не менее, детали, специфичные для Excel, лучше описаны в предыдущей статье.

Один важный вопрос, который вы должны знать при использовании Excel и SQL:

Ошибка: утечка памяти возникает при запросе открытого листа Excel с использованием объектов данных ActiveX (ADO)

Какие ключевые слова / функции / предложения доступны?

Что касается использования Jet 4.0 SQL, эта статья является лучшим из когда-либо найденных:

Промежуточный Microsoft Jet 4.0 SQL

Теоретически SQL-раздел справки о доступе должен быть релевантным, но он имеет особенно низкое качество, и Jet 4.0 особенно страдает от плохого охвата.

Опять же, не все будет работать непосредственно в Excel. Например, хотя вы можете использовать CREATE TABLE SQL DDL для создания нового рабочего листа и рабочей книги, вы не можете создать столбец NOT NULL потому что это физически невозможно. Кроме того, типы данных Excel как менее гранулированные, например, большинство числовых типов относятся к DOUBLE FLOAT .

Что касается выражений, которые могут использоваться в SQL, служба выражения Jet 4.0 каким-то образом использует службы выражения VBA. Вообще говоря, Jet может использовать любую VBA 5.0 (не последнюю версию, являющуюся VBA 6.0), которая не является методом, который поддерживает значения, а возвращает возвращает одно значение, только простых внутренних типов данных (без массивов, без объектов и т. Д. ). Я думаю, что я прав, говоря, что Microsoft никогда не публиковала окончательный список функций VBA, поддерживаемых Jet 4.0. Тем не менее, я считаю, что список в следующей статье точно совпадает со списком функций VBA, которые можно использовать в Jet 4.0:

Как настроить Jet 4.0 для предотвращения использования небезопасных функций в Access 2003

(Список находится в таблице под подзаголовкой «Использовать режим« Песочница »с пакетом обновления 3 (SP3) и« Jet 4.0 »).)

Обратите внимание, что некоторые функции ведут себя по-разному в Jet 4.0, чем в VBA. С головы до ног я могу думать о двух. IIF() может содержать ярлык в Jet 4.0 (недокументированный, AFAIK): в VBA оцениваются как условия TRUE и FALSE , в Jet 4.0 оценивается только согласованное условие. Функция CDEC() (cast to DECIMAL ) нарушена в Jet 4.0 .

как писать константы даты типа? Я имею в виду, способ выразить 2011.01.20 (это постоянное значение) в SQL, например, я использую «2011-01-20» или # 2011-01-20 # или что-то еще?

Я знаю это как «буквальное значение».

Это то же самое, что и VBA, т. Е. #m/d/yyyy# , поэтому сегодняшняя дата будет #1/20/2011# . Тем не менее, я предпочитаю использовать формат даты ISO 8601 и одинарные кавычки (для переносимости) и всегда включать поле времени (поскольку Jet 4.0 имеет только один временный тип данных, являющийся DATETIME ) и, чтобы обеспечить соблюдение региональных настроек, используйте CDATE() к функции DATETIME например, сегодняшняя дата будет CDATE('2011-01-20 00:00:00') .


[Первоначально думал, что OP означает: «Как создать столбец типа DATE ?»]

вы можете использовать CREATE TABLE DDL, например

 CREATE TABLE [Excel 8.0;DATABASE=C:\MyNewWorkbook.xls].MyTable ( my_date_col DATETIME ); 

Обратите внимание, что, хотя Jet 4.0 будет соблюдать тип данных DATETIME , такого ограничения нет, когда рабочая тетрадь отредактирована в Excel: если таблица Range расширена и добавлены невременные данные, тогда тип данных, «увиденный» Jet 4.0, может измениться в результате.


Какие ключевые слова / функции / предложения доступны?

Что касается списка функций, я нашел следующий список имен в файле MSMDCB80.DLL :

YEAR, WEEKDAY, VarType, Val, UCase$, UCase, TypeName, TRIM$, TRIM, TIMEVALUE, TimeSerial, Timer, TIME$, TIME, TAN, SYD, Switch, String$, String, StrConv, StrComp, Str$, Str, Sqr, Space$, Space, SLN, SIN, Sgn, SECOND, RTrim$, RTrim,Round, Rnd, RIGHTB$, RIGHTB, RIGHT$, RIGHT, RGB, RATE, QBColor, PV, PPMT, PMT, Partition, Oct$, Oct, NPV, NPER, NOW, MONTH, MIRR, MINUTE, MIDB$, MIDB, MID$, MID, LTrim$, LTrim, LOG, LENB, LEN, LEFTB$, LEFTB, LEFT$, LEFT, LCase$, LCase, IsObject, IsNumeric, IsNull, ISERROR, IsEmpty, IsDate, IRR, IPMT, INT, InStr, IMEStatus, IIF, HOUR, Hex$, Hex, Fv, Format$, Format, Fix, EXP, Error$, Error, DDB, Day, DATEVALUE, DATESERIAL, DatePart, DateDiff, DATEADD, DATE$, Date, CVErr, CvDate, CVAR, CSTR, CSNG, COS, CLNG, CINT, CHRW$, CHRW, CHRB$, CHRB, CHR$, CHR, Choose, CDBL, CDATE, CCUR, CBYTE, CBOOL, ATN, ASCW, ASCB, ASC, Array, ABS

Их аргументы и описание можно найти здесь

Каждая функция работает в моих SQL-запросах, поэтому, я думаю, это полный список из 125 функций.

  • Обновление таблицы SQL Server из данных Excel
  • Экспорт 3 gridviews для Excel в 3 разных листах
  • Можно ли использовать значения в ячейке для запроса таблицы SQL и посмотреть, существует ли значение в таблице?
  • Сортировка по дате в Excel при импорте из служб Reporting Services
  • Соответствие значений в двух таблицах запроса (SQL и ColdFusion)
  • Использование CONCATENATE в Excel
  • Создание отчета excel с помощью python
  • Ошибка связанного сервера: невозможно прочитать данные excel 2010 через SQL Server 2008
  • Запуск хранимой процедуры SQL Server из Excel
  • проверьте, существует ли столбец VBA
  • SUM только разные значения при определенных критериях SQL
  • Interesting Posts

    Сумма столбца таблицы по названию ячейки

    Сравните значения в разных листах, затем скопируйте соответствующую ячейку, если они совпадают (Excel 2013)

    Доступ к нескольким листам с использованием excel 2013 vba

    Как получить определенные ячейки из одного листа для перехода в определенные ячейки на другом листе

    Возвращаемое значение доступа из функции VBA в .NET?

    Передайте Sub ссылку относительно ссылки

    Excel: вычисление суммы увеличения (уменьшения) в диапазоне, только в одной формуле

    Подсчитать количество ячеек с заполнением цветом Excel 2013

    Инструмент конвертации для таблиц MS-Excel с макросами и VB в Oracle?

    Использование макроса для копирования нескольких диапазонов с одного листа и вставки их в другой лист в первой пустой строке

    У меня есть VBA, который открывает электронную таблицу и импортирует данные из Access, как я могу заблокировать оригинал и автоматически «Сохранить как»?

    VSTO-Addins (Word, Excel) со схожими функциями: аутсорсинг в собственный проект

    Возврат каретки Oracle 10g SQL

    PHPExcel + поток из БД. Как поймать этот файл для получения прав в Интернете?

    Сохранение нового документа Excel в виде книги без макросов без подсказки

    Давайте будем гением компьютера.