Sdscompany.ru

Компьютерный журнал
5 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Access экспорт в csv

Экспорт данных в CSV файл из Microsoft SQL Server, используя Access 2003

Если у Вас возникла необходимость выгружать данные из базы MS SQL Server в текстовый формат CSV, то из данного материала Вы узнаете, как это можно сделать средствами Access 2003.

Итак, если у Вас встала задача выгрузить данные с SQL сервера в CSV файл, то ее можно решить несколькими способами, например:

  • С помощью встроенной консольной утилиты BCP;
  • Используя SSIS — SQL Server Integration Services;
  • Или как вариант можно с помощью конструкции INSERT INTO OPENROWSET;
  • Другие варианты, например с использованием сторонних приложений.

Все они не универсальные и не идеальные, поэтому какой способ использовать зависит от ситуации. Например, для администратора или программиста баз данных SSIS будет отличным вариантов для массового экспорта данных, но он не подходит, если необходимо, например, интегрировать данную возможность в свое приложение, чтобы обычные пользователи могли пользоваться ей.

Программа BCP тоже не подходит, даже если вызывать ее средствами T-SQL, используя хранимую процедуру, так как для этого потребуется включить возможность выполнения xp_cmdshell, а это не безопасно.

Конструкция INSERT INTO OPENROWSET подразумевает наличие уже созданного CSV файла с нужными заголовками полей, тоже не подходит, так как это неудобно.

Остается только использовать что-то другое, например, Access, и для меня это оказалось лучшим вариантом, так как приложение, в которое мне необходимо было интегрировать возможность экспорта в CSV, как раз реализовано в виде ADP проекта Access 2003.

Сейчас в тестовом варианте я покажу Вам, как можно в ADP проекте Access 2003 реализовать возможность выгрузки результатов запросов в CSV файл.

Исходные данные

В качестве примера я буду использовать СУБД Microsoft SQL Server 2012 Express.

Допустим, у нас будет база данных Test, а в ней следующая таблица

Заполним таблицу тестовыми данными

Посмотрим, что у нас получилось

Заметка! Если Вы не знаете, что делает вышеуказанная инструкция, рекомендую пройти онлайн-курс «T-SQL. Путь программиста от новичка к профессионалу. Уровень 1 – Новичок», который предназначен для начинающих и на нем подробно рассмотрены все базовые конструкции языка T-SQL.

И эти данные нам нужно выгрузить в CSV файл и не просто выгрузить, а реализовать функционал, с помощью которого обычные пользователи могли бы сами экспортировать данные. В качестве разделителя допустим, нам необходимо использовать точку с запятой.

Реализация экспорта данных с SQL сервера в формат CSV в Access 2003

Так как CSV это обычный текстовый формат данных, где значения разделяются запятой или другим символом нам достаточно написать код VBA, который позволял бы сохранять текстовый файл с расширением CSV.

Для этого открываем свой ADP проект, он соответственно должен быть подключен к тестовой базе Test (или к той, которая нужна Вам).

Создаем форму или открываем на редактирование существующую форму и добавляем на ней одну кнопку, например, я ее назвал ExportInCSV.

Примечание! Сразу скажу, что в примере ниже я показываю сам принцип выгрузки, но данную возможность можно сделать более универсальной, например, на форму добавить текстовое поле и в него писать SQL запрос, для того чтобы передавать в процедуру или сделать возможность самостоятельно указывать любой разделитель, в примере ниже он прописан вручную в коде или, например, Вам нужно динамически формировать название экспортируемого файла все это под свои нужды Вы легко можете доработать самостоятельно.

В «Обработку события» нашей кнопки вставляем следующий код VBA (я его подробно прокомментировал):

Примечание! Для работы FileDialog требуется подключить библиотеку Microsoft Office 11.0 Object Library. Это делается следующим образом: в редакторе Microsoft Visual Basic (где вы вставляете код VBA) откройте меню Tools->References, найдите нужную библиотеку, поставьте галочку и нажмите «ОК».

Сохраняем и запускаем нашу форму, щелкаем по кнопке (в моем случае ExportInCSV), в итоге у нас откроется диалоговое окно выбора пути сохранения файла, мы выбираем каталог для экспорта и жмем «Сохранить». Затем подтверждаем свое действие и жмем «ОК».

После того как выгрузка будет завершена, появится соответствующее сообщение. Для проверки открываем каталог, в который выгрузился файл, находим файл TestFile.csv и открываем его любым блокнотом, например, мне нравится Notepad++.

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

Access экспорт в csv

Answered by:

Question

I’m trying to export a table that I have in a Access Db to a csv file. For now, I’m exporting it to a Excel file, but I can’t make it to a csv file. Can someone help me?

This is the code that I’m using to export the data to excel. First the query.

DoCmd.RunSQL «SELECT [Files] INTO Table2 FROM Table1;»

and then the code line:

DoCmd.TransferSpreadsheet acExport, 8, «Table2», «C:Table2», True

or if anybody can tell how to do it from the excel file that’ll be great too!

Thanks for your time.

Answers

Are you doing this as a one-off exercise or are you trying to do this as part of an application?

Assuming Access 2003, If you are doing it as a one-off then try this:

File (Menu) —> Export

Save as Type ‘Text Files’

Don’t use the ‘save formated’ option

That will bring up the Export Text Wizard

Choose Delimited, click next

Choose ‘Comma’ delimiter and » as Text qualifier.

Choose ‘Include Field names on First Row’ if you want column headings

Give it a name and click finish

That will give you a CSV file.

If you want to do it as part of the application take a look at docmd.TransferText in MS Access help.

I hope this puts you on the right path.

In this case you can use the following command:

DoCmd.TransferText acExportDelim, «Standard Output», _
«External Report», «C:TxtfilesMyText.csv»

All replies

In this case you can use the following command:

DoCmd.TransferText acExportDelim, «Standard Output», _
«External Report», «C:TxtfilesMyText.csv»

Are you doing this as a one-off exercise or are you trying to do this as part of an application?

Читать еще:  Книги по access 2020

Assuming Access 2003, If you are doing it as a one-off then try this:

File (Menu) —> Export

Save as Type ‘Text Files’

Don’t use the ‘save formated’ option

That will bring up the Export Text Wizard

Choose Delimited, click next

Choose ‘Comma’ delimiter and » as Text qualifier.

Choose ‘Include Field names on First Row’ if you want column headings

Give it a name and click finish

That will give you a CSV file.

If you want to do it as part of the application take a look at docmd.TransferText in MS Access help.

I hope this puts you on the right path.

the function given by you works, but i would like to export fields delimited by * and I would also like the strings to be exported without the quotation marks (» «)

i would like to have:

is it possible?

I have recently converted a database from Access 97 to Access 2003 which used the TransferTest command

DoCmd.TransferText acExportDelim, , «Query name», «c:pathfilename» — which worked fine.

However, if I try to run this line of code in Access 2003 I get a message «Cannot update. Database or object may be read-only».

Anybody know how to make this work?

what is the data type of the table ?

The table consists of numerous fields, but this one in particular is a text field. When the table was initially imported into the database, it was a Number field. Since we needed the 11-digit number, we then created an Update Query to add back in the leading zeroes, but had to change it over to a text field. Now when I export it out of Access into a .csv file, the leading zeroes are removed automatically by the system again.

I am trying to do something similar, but I need to have the quotation marks (» «) around all fields, including those that are empty.

I know its possible as I have seen it done. I just can’t seem to recreate it myself.

I have a Problem in ACCESS 2003. Im trying to export a table to a csv file, but its imposible to export a number with four decimals, Access converts it in a cientific notation.

¿Does anyone knows how to avoid this way of work. I don’t want to export it as text.

Example Price : 0,0019 export as 1,9e-03.

DoCmd.TransferText acExportDelim, «KlasExportspecificatie», «Resultaten», «C:UsersHALDesktop» & klKlassen.Value & » » & sKeuze & «.csv»

«KlasExportspecificatie» is the exportspecification I created with the export wizard, containing the settings for CSV files
«Resultaten» is the table from which the data is exporting
«C:UsersHALDesktop» & klKlassen.Value & «.csv» is the file path to where the file is exported
klKlassen.Value is the value from a list-box which contains a part of the filename

The trick is to make a exportspecification in the Export Wizard.
Right-click the exported table. Choose EXPORT, TXT-file.
All checkboxes not checked.
Use on the next page the ADVANCED-button to modify and save the exportspecification.

That does the trick, HAL

Your instruction were clear and the process worked well with one exception — I would like to include the header row from the table in the .csv file

Even though I step through the export and include that choice before I go to the Advanced button to modify and save, the export does not include the header row from the table in the .csv file.

To add the header:

DoCmd.TransferText(TransferType, SpecificationName, TableName, FileName, HasFieldNames, HTMLTableName, CodePage)

HasFieldNames Optional Variant. Use True (–1) to use the first row of the text file as field names when importing, exporting, or linking. Use False (0) to treat the first row of the text file as normal data. If you leave this argument blank, the default (False) is assumed. This argument is ignored for Microsoft Word mail merge data files, which must always contain the field names in the first row.

MS Access export table as .CSV file

I. Please help anyone on how to export a Microsoft table to a .csv

I am not able to program so I am looking for a macro based solution.

ii. Also, please advise how to save an Excel spreadsheet as .csv so that

on opening the leading zeros are not striped.

Question Info

Replies (6) 

If you’re not able to program why not just use the Ribbon commands:

External Data >> Export >> Excel (or Text File)

If you must do it with a Macro, you can review the ExportWithoutFormatting action. There are several attributes you must set, but they’re self-explanatory (like Object Type, Object Name, etc).

Regarding your second request: This is a forum devoted to Microsoft Access, not Excel. You should post separate questions in the relevant forum.

That said, the column in your Excel spreadsheet should be configured as Text to avoid stripping the leading zeros. You may also have to use an Export Spec — but, again, you should ask this in the Excel forum.

Did this solve your problem?

Sorry this didn’t help.

Great! Thanks for marking this as the answer.

How satisfied are you with this reply?

Thanks for your feedback, it helps us improve the site.

How satisfied are you with this response?

Thanks for your feedback.

Following your suggestion: I tried using the ExportWithoutFormatting action for the first time to export:

— Object Type set to table «contacts 2 acx»

— Output Format set to Test Files (*.txt) because the required csv format is apparently (?) not available

— Output File:c:contactscontacts 2 acx and also c:contactscontacts 2 acx.csv

Which does not give a comma separated output file.

What next Mr McDaniel or anyone else?

Did this solve your problem?

Sorry this didn’t help.

Great! Thanks for marking this as the answer.

How satisfied are you with this reply?

Thanks for your feedback, it helps us improve the site.

Читать еще:  Access 2000 скачать

How satisfied are you with this response?

Thanks for your feedback.

I don’t use macros, so can’t really help with that, and I’m not even sure you can do this with a macro.

You can do it with VBA, but you have to first create an Export Spec manually. To do that:

  1. Select External Data — Export — Text. Do NOT select any of the «Specify Export Options» boxes
  2. Click OK
  3. Click the Advanced button
  4. Make sure the Field Delimiter is set to the comma
  5. Click the Save As .. button
  6. Enter a name for your Export Spec. Be sure to remember this, or write it down.
  7. Click OK >> OK
  8. Back in the Export Text Wizard, click Finish

You can now use the Export Spec you saved when exporting via VBA. To do that:

DoCmd.TransferText acExportDelim, «YourSpecName», «YourTableName», «Full File Location»

Obviously you’d have to change YourSpecName and the other arguments to match your own. Note the «Full File Location» is the full path where you want to save your file.

See here for more information on using TransferText:

Экспорт CSV #1405

Шаг 1

Для того, чтобы запланировать экспорт CSV необходимо редакторе Интернет-магазина открыть вкладку «Экспорт».

Шаг 2

В открывшемся окне Вам необходима вкладка «CSV» (она открывается по умолчанию).

Шаг 3

В строке «Выбранные категории» можно выбрать одну или несколько категорий, товары которой необходимо экспортировать. Для этого нажмите на кнопку выбора категорий и в открывшемся окне отметьте галочками нужные категории. Если категория выбрана не будет, то система осуществит экспорт всех товаров магазина.

  • При необходимости Вы можете выбрать все дочерние категории (всех уровней вложенности). Для этого нажмите «Выбрать ветку» в строке с той категорией, дочерние категории которой Вам нужно отметить.

Символ разделитель колонок. Обратите внимание! При выборе в качестве символа-разделителя колонок табуляции () рекомендуем Вам открывать выгруженный файл экспорта в редакторе LibreOffice. Если же Вы решите воспользоваться MS Excel — для корректного отображения файла необходимо его открыть через вкладку “Данные” — кнопка “Из текста”.

В поле «Символ-разделитель значений в ячейках» выберите тот символ, который Вы бы хотели видеть в файле экспорта в качестве разделителя значений в ячейках (например, в ячейках со значениями дополнительных полей “Выпадающий список множ.”).

В поле «Символ-разделитель дробных частей» выберите тот символ, который Вы бы хотели видеть в файле экспорта в качестве разделителя дробных частей в ценах и весах.

Обратите внимание!

  • При выборе в качестве символа-разделителя дробных частей точки (.) настоятельно рекомендуем Вам заменить в настройках MS Excel разделитель дробных частей на точку. В противном случае некоторые цены, а также значения количества и веса могут преобразоваться в даты. Изменить разделитель дробной части можно в следующем разделе настроек Excel: Вкладка «Файл», раздел «Параметры», в разделе «Параметры» вкладка «Дополнительно», далее снять галочку «Использовать системные символы-разделители» и задать «Символ-разделитель дробных частей» — «.».

В поле»Кодировка» выберите удобный для вас вариант из представленных значений.

  • Выберите кодировку Windows-1251 в случае, если Вы являетесь пользователем операционной системы Microsoft Windows.
  • Выберите Кодировку UTF-8 следует выбирать в случае, если Вы являетесь пользователем UNIX-подобных операционных систем.

В поле «Маркер конца строки» выберите тот вариант, который соответствует операционной системе, установленной на ПК, с помощью которого в дальнейшем планируется открыть файл экспорта.

Далее Вы можете исключить из файла экспорта скрытые товары (в зависимости от режима — с доступом или без). Для этого в соответствуюшей настройке выберите один из режим:

  • Не игнорировать — в экспорте будут участвовать все товары, независимо от их параметров отображения;
  • Все скрытые — из файла экспорта будут исключены все скрытые товары (как с доступом по ссылке, так и без доступа);
  • Скрытые без доступа (404) — товары, которые были скрыты в Интернет-магазине с параметрами отображения — “Скрыть без доступа (404)”, не будут участвовать в экспорте товаров и не попадут в файл;
  • Скрытые с доступом по прямой ссылке — товары, которые были скрыты в Интернет-магазине с параметрами отображения — “Скрыть с доступом по прямой ссылке”, не будут участвовать в экспорте товаров и не попадут в файл;

Значения категорий/поставщиков/производителей — выберите то значение (ID или название), которое должно попасть в файл экспорта (например, для дальнейшего импорта товаров). При выборе “ID” — для каждого товара в соответствующих столбцах будут указаны уникальные идентификационные номера категорий, поставщиков и производителей. При выборе “Названия” — в данном столбце будут их наименования.

В группе галочек ниже можно отметить дополнительные параметры, которые Вы желаете видеть в файле экспорта:

  • Основные параметры — отметьте галочками те параметры товаров, которые Вы бы хотели видеть в файле экспорта (для каждого параметра будет создан отдельный столбец).
  • Дополнительные параметры — тут Вы сможете включить выгрузку следующих значений:
    • ID — отметьте галочку, если хотите, чтобы в файл экспорта попали идентификационные номера товаров;
    • Модификация — при отмеченной галочке вместе с основным товаром в файл выгрузятся все его модификации;
    • Дополнительные поля — в файле у товаров будут отображаться дополнительные поля;
    • Товар уже со скидкой — в файл выгрузится информация о значении параметра «Товар уже со скидкой».
    • YML параметры — а файл попадут данные из вкладки настроек Yandex.Market.
    • Начисляемые за покупку бонусы — количество бонусов, прописанное для товара в рамках бонусной программы.
  • Описание — отметьте галочками анонс и/или описание, если желаете, чтобы они попали в файл экспорта.
  • Единица измерения товара — проставьте галочки для тех параметров измерения, которые Вам необходимы.
  • Флаги — отметьте галочками флаги товаров, которые Вы хотите выгрузить.
  • Цена товара — тут Вы сможете включить экспорт информации о различных ценах и валюте товаров.
  • SEO-параметры — отметьте для выгрузки необходимые Вам SEO-параметры товаров (H1, Title, Description, Keywords) и параметры индексации.
    • Тут же Вы можете при необходимости настроить выгрузку информации о мета-тегах социальных сетей (они будут выгружаться, только если включены в «SEO панели»).
  • Коллекции — отметьте галочками те виды коллекций, информацию о которых Вы хотели бы видеть в файле импорта. В файл попадут ID тех коллекций (в списке коллекций ID — это число, указываемое через символ «#» справа от названия коллекции), в которых лежат товары (каждый тип коллекции — в отдельном столбце). Если это основной товар коллекции (для коллекций видов «Аксессуары»/»Рекомендуемые») или если коллекция формируется в виде общего списка («Похожие»/»Комплект»), ID будет указан просто в виде числа. Если товар является дочерним (если это «Аксессуары»/»Рекомендуемые» — товар, являющийся аксессуаром или рекомендуемым) — в виде числа с меткой (1).
  • Налог — отметьте галочками те настройки для касс, которые Вы хотели бы видеть в файле:
    • Признак предмета платежа — в файл выгрузится значение настройки в виде номера от 1 до 12 (подробнее в таблице).
    • Система налогообложения — в файл выгрузится значение настройки в виде номера от 1 до 6 (подробнее в таблице).
    • Налог — в файл выгрузятся следующие значения через символы-разделители: значение галочки включения налога (1 — включено, 0 — выключено), название налога, процент налога.
  • Commerce ML — тут Вы можете включить экспорт значений UUID товаров и модификаций, используемых при импорте «CommerceML» (например, 1С):
    • UUID Товара — в файл будет добавлен столбец «uuid» с UUID основных товаров.
    • UUID Модификации — в файл будет добавлен столбец «uuid_mod», в который попадут значения полей «UUID Основной модификаци» для основных товаров и «UUID модификации» для модификаций.
Читать еще:  Microsoft access что это за программа

Далее нажмите кнопку «Запланировать».

Шаг 4

В открывшемся окне «Экспорт» можно просмотреть информацию о том, успешно ли запланирован экспорт товаров, и узнать ID очереди заданий на сервер. В случае если экспорт запланирован успешно, нажмите кнопку «Закрыть».

Шаг 5

Далее в «Очереди заданий» появится Ваш файл, которому будет присвоен сперва статус «В очереди», а затем — «Выполняется».

Через некоторое время (зависит от количества очередей заданий на сервер) статус сменится на «Готово», теперь Вы можете сохранить файл, нажав на его название левой кнопкой мыши.

Как экспортировать базу данных Access в формате CSV?

У меня есть база данных Access, которую я хотел бы экспортировать в текстовый файл. У меня есть схема, определенная в Access, и в настоящее время я использую макрос для ее экспорта. Я хотел бы использовать VBScript, чтобы всегда добавлять результат запроса в один и тот же файл. Если невозможно использовать мою определенную схему , мне нужно только, чтобы поля были разделены запятыми и заключены в » , а текстовый файл должен быть в формате UTF-8 .

Я нашел следующий фрагмент кода, но я не уверен, как использовать его для своих нужд.

4 Ответов

Пожалуй, самый простой способ-это использовать [текст. ].подход к имени файла:-

FileSystemObject не поможет вам, так как это не делает UTF-8. UTF-8 достигается путем указания CharacterSet=65001 (65001-кодовая страница UTF-8). Примечание. созданный файл не содержит UTF-8 BOM, но созданный файл schema.ini будет иметь значение CharacterSet UTF-8.

Обратите внимание, что это не соответствует вашим требованиям к добавлению вы уверены, что это имеет смысл в любом случае, не будет ли у вас в конечном итоге много дубликатов?

Редактировать :

Вышеизложенное корректируется с учетом требования UTF-8. Вы можете просто добавить что-то вроде даты, чтобы создать несколько файлов моментальных снимков для таблицы.

Направление (2) Это какой-то VBA, запускаемый из базы данных Access:

Это то же самое, но в VBScript, используя DAO:

Я предлагаю совершенно другое направление, а именно позволить MySQL делать свою работу:

Я проверил это на вашей базе данных, и он, кажется, правильно импортирует, занимает всего несколько минут и будет генерировать всевозможные многоразовые скрипты и так далее.

Если у вас возникли проблемы с настройкой MySQL, вы можете прочитать:: 9.1.4. Наборы символов соединения и параметры сортировки

Я пронумеровал эти строки для справки.

Строка 1 — это текущий файл базы данных access, с которым вы работаете. в данном случае это LTD.mdb
Строка 2-это имя файла, который вы собираетесь write/append. это Exp.txt
Строка 3 — это оператор sql, который будет использоваться для сбора данных.
Строка 4-это команда для открытия файла для записи.

Измените строку 2 на имя нужного файла.
Измените строку 3 на таблицу, которую вы хотите использовать. Выберите * будет использовать все столбцы, если вы хотите, чтобы только пара идентифицировала их по имени. выберите col1, col2 . из моего кабинета. Вы также захотите изучить использование предложений where.

Измените строку 4 с CreateTextFile на OpenTextFile и используйте ForAppending для добавления. MSDN VBA

Я рисую пробел на форматировании строки. Один из способов, который я использую, — это изменить инструкцию select, чтобы включить запятые. пример выберите col1 & «, » & col2 из mytable.

Для UTF-8 (у меня нет рабочего примера) попробуйте:

Похожие вопросы:

как экспортировать данные из файла csv в базу данных mysql? есть ли какой-либо запрос или какой-то другой способ avial?

У меня только что появилась прекрасная база данных Access, поэтому первое, что я хочу сделать, это переместить ее в обычную систему управления базами данных (sqlexpress), но единственное решение .

Я хочу экспортировать свою базу данных realm в CSV/JSON в Android. Есть ли какой-то встроенный метод в базе данных realm, который может это сделать? Существует iOS способ преобразования realm в CSV.

Я не знаю, как экспортировать базу данных из Oracle 11g Express Edition. Я хочу, чтобы он был в формате .csv, чтобы мне было легко импортировать его в MySQL.

У меня есть база данных в MS Access, и я хочу экспортировать эту базу данных в mysql через php скрипт. Довольно легко импортировать файл csv в mysql через скрипт, но как я могу экспортировать свою.

Я хочу экспортировать базу данных access в формат csv. Когда я открываю файл csv в excel, даты перепутались. У меня есть одно поле с датой. Поля даты в порядке. У меня есть еще одно поле, где есть.

Я хочу добавить в свое приложение функции экспорта табличных данных в формате CSV, Excel, PDF. Я строю приложение, используя angularjs 1.2.16. Экспорт данных в Excel Я уже использовал

Ссылка на основную публикацию
Adblock
detector