Преобразовать word в access

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

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

В этой статье

  • Текстовые файлы и поддерживаемые форматы

  • Импорт данных из текстового файла

  • Что еще важно знать об импорте

  • Решение проблем, связанных с отсутствующими и неверными значениями в импортированной таблице

  • Создание связи с текстовым файлом

  • Решение проблем со значением #ЧИСЛО! и неверными значениями в связанной таблице

Текстовые файлы и поддерживаемые форматы

Текстовый файл содержит читаемые знаки без форматирования (например, буквы и цифры) и специальные символы (такие как табуляция, перевод строки и возврат каретки). Access поддерживает следующие расширения для имени файла: TXT, CSV, ASC и TAB.

Чтобы использовать текстовый файл в качестве источника для импорта или связывания, необходимо структурировать его содержимое таким образом, чтобы мастера импорта и связывания могли разделить его на записи (строки), а каждую запись — на поля (столбцы). Текстовые файлы с правильной структурой делятся на два типа:

  • Файлы с разделителями.    В таких файлах каждая запись располагается на отдельной строке, а поля отделяются друг от друга одним символом (разделителем). Разделителем может служить любой знак, который не используется в значениях полей, например знак табуляции, точка с запятой, запятая, пробел и т. д. Ниже приведен пример текста с разделителями-запятыми.

    1,Company A,Anna,Bedecs,Owner
    2,Company C,Thomas,Axen,Purchasing Rep
    3,Company D,Christina,Lee,Purchasing Mgr.
    4,Company E,Martin,O’Donnell,Owner
    5,Company F,Francisco,Pérez-Olaeta,Purchasing Mgr.
    6,Company G,Ming-Yang,Xie,Owner
    7,Company H,Elizabeth,Andersen,Purchasing Rep
    8,Company I,Sven,Mortensen,Purchasing Mgr.
    9,Company J,Roland,Wacker,Purchasing Mgr.
    10,Company K,Peter,Krschne,Purchasing Mgr.
    11,Company L,John,Edwards,Purchasing Mgr.
    12,Company M,Andre,Ludo,Purchasing Rep
    13,Company N,Carlos,Grilo,Purchasing Rep
    

  • Файлы с полями фиксированного размера.    В таком файле каждая запись размещается на отдельной строке, а ширина каждого поля является постоянной для всех записей. Например, первое поле каждой записи всегда состоит из семи знаков, второе — всегда из 12, и т. д. Если фактические значения поля различаются от записи к записи, к значениям, длина которых меньше требуемой ширины, в конце нужно добавить пробелы. Ниже приведен пример текста с полями фиксированного размера.

    1   Company A   Anna       Bedecs         Owner            
    2   Company C   Thomas     Axen           Purchasing Rep   
    3   Company D   Christina  Lee            Purchasing Mgr.  
    4   Company E   Martin     O’Donnell      Owner            
    5   Company F   Francisco  Pérez-Olaeta   Purchasing Mgr.  
    6   Company G   Ming-Yang  Xie            Owner            
    7   Company H   Elizabeth  Andersen       Purchasing Rep   
    8   Company I   Sven       Mortensen      Purchasing Mgr.  
    9   Company J   Roland     Wacker         Purchasing Mgr.  
    10  Company K   Peter      Krschne        Purchasing Mgr.  
    11  Company L   John       Edwards        Purchasing Mgr.  
    12  Company M   Andre      Ludo         Purchasing Rep   
    13  Company N   Carlos     Grilo          Purchasing Rep   
    

К началу страницы

Импорт данных из текстового файла

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

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

В конце импорта можно сохранить сведения о нем в виде спецификации. Спецификация позволяет выполнять импорт повторно без использования мастера.

Стандартные сценарии импорта текстового файла в Access

Как правило, текстовые данные импортируются в Access по следующим причинам:

  • Часть данных хранится в формате, который не поддерживается в Access, но их требуется использовать в базе данных. Исходные данные можно сначала экспортировать в текстовый файл, а затем импортировать этот файл в таблицу Access.

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

Примечание: Если открыть в Access текстовый файл (для этого нужно выбрать в списке Тип файлов диалогового окна Открытие файла базы данных значение Все файлы и щелкнуть нужный текстовый файл), Access запустит мастер связывания с текстовыми файлами, который позволяет создать ссылку на текстовый файл, вместо того чтобы импортировать его содержимое. Связывание с файлом отличается от импорта его содержимого. Дополнительные сведения о связывании с текстовыми файлами см. в разделе Создание связи с текстовым файлом далее в этой статье.

Подготовка исходного файла

  1. Откройте исходный файл в текстовом редакторе, например в Блокноте.

    Примечание: В ходе одной операции импорта можно импортировать лишь один текстовый файл. Чтобы импортировать несколько файлов, повторите импорт для каждого из них.

  2. Просмотрите содержимое исходного текстового файла и выполните действия из приведенной ниже таблицы.

    Элемент

    Описание

    Разделители или поля фиксированного размера

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

    Ограничители текста

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

    • «Ольга Зуева»,25,4.5.2017,»Нижний Новгород»

    • «Глеб Селезнев»,27,2018,»Вологда»

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

    • Разделитель является частью значения поля. Например, если в качестве разделителя используется запятая, а значение поля равно Самара, Вологда, его придется заключить в ограничители: «Самара, Вологда».

    • Вы хотите, чтобы Access обрабатывал нетекстовые значения, например 0452934 и 0034539, как текстовые и хранил их в текстовом поле.

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

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

    Количество полей

    Число исходных полей не должно превышать 255 , так как Access поддерживает не более 255 полей в таблице.

    Пропуск записей и значений

    Если вам нужно перенести лишь часть текстового файла, его следует отредактировать перед началом импорта, так как пропуск записей в ходе операции невозможен.

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

    Пустые строки и поля

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

    Лишние символы

    Найдите и удалите лишние символы (табуляции, перевода строки, возврата каретки).

    Типы данных

    Чтобы избежать ошибок при импорте, убедитесь, что типы данных в полях одинаковы для всех строк. Access считывает первые 25 строк файла, чтобы определить тип данных для полей таблицы. Настоятельно рекомендуем убедиться в том, что первые 25 исходных строк не содержат данные разных типов. Кроме того, нетекстовые значения, которые требуется обрабатывать как текстовые, необходимо заключить в одинарные или двойные кавычки.

    Если исходный файл содержит смешанные значения в строках, идущих после 25-й строки, они могут быть пропущены или неправильно преобразованы при импорте. Сведения об устранении проблем см. в разделе Решение проблем, связанных с отсутствующими и неверными значениями в импортированной таблице далее в этой статье.

    Имена полей

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

    Примечание: Если вы добавляете файл с полями фиксированного размера в существующую таблицу, убедитесь, что имя каждого столбца в точности соответствует имени поля. Если они отличаются, импорт завершится сбоем. Чтобы просмотреть имена полей, откройте конечную таблицу в режиме конструктора.

  3. Закройте исходный файл, если он открыт. Если исходный файл остается открытым в ходе операции импорта, могут возникнуть ошибки преобразования данных.

Запуск импорта в Access

  1. Откройте базу данных Access, в которой будут храниться импортируемые данные. Если ни одна из существующих баз данных не подходит для этого, создайте пустую базу данных.

  2. Перед началом импорта следует определить, в какой таблице будут храниться данные: в новой или существующей.

    • Создание новой таблицы.    Если необходимо сохранить данные в новой таблице, в Access создается таблица, в которую добавляются импортируемые данные. Если таблица с указанным именем уже существует, ее содержимое перезаписывается импортируемыми данными.

    • Добавление в существующую таблицу.    Если используется существующая таблица, при импорте данные добавляются в нее.

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

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

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

        Совет: Поле может принимать значения NULL, если для его свойства Обязательное поле задано значение Нет, а свойство Условие на значение не запрещает значения NULL.

      • Первичный ключ.    Если таблица содержит поле первичного ключа, исходный файл должен содержать столбец со значениями, совместимыми с полем первичного ключа. Кроме того, импортируемые значения ключа должны быть уникальными. Если импортируемая запись содержит значение первичного ключа, которое уже существует в таблице, отображается сообщение об ошибке. Нужно отредактировать исходные данные таким образом, чтобы они содержали уникальные значения ключа, а затем повторить импорт.

      • Индексированные поля.    Если для свойства Индексированное поле поля в таблице задано значение Да (совпадения не допускаются), соответствующий столбец в исходном текстовом файле должен содержать уникальные значения.

  3. Расположение мастера импорта или связывания текста зависит от используемой версии Access. Выполните действия, которые соответствуют вашей версии Access.

    • Если вы используете Access 2019 или последнюю версию Access, которая предоставляется по подписке на Microsoft 365, на вкладке Внешние данные в группе Импорт и связи нажмите кнопку Создать источник данных и выберите Из файла > Текстовый файл.

    • Если вы используете Access 2016, Access 2013 или Access 2010, на вкладке Внешние данные в группе Импорт и связи нажмите кнопку Текстовый файл.

  4. Откроется диалоговое окно Внешние данные — Текстовый файл.

    Выберите вариант для импорта данных из текстового файла, их добавления или создания связи с ними.

  5. В диалоговом окне Внешние данные — Текстовый файл введите путь к исходному файлу в поле Имя файла.

  6. Укажите способ сохранения импортируемых данных.

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

    • Чтобы добавить данные в существующую таблицу, выберите параметр Добавить копию записей в конец таблицы и выберите таблицу в раскрывающемся списке.

      Примечание: Сведения о связывании с источником данных путем создания связанной таблицы см. ниже в разделе Создание связи с текстовым файлом.

  7. Нажмите кнопку ОК.

    Access проверит содержимое файла и предложит его структуру. Если в файле используется разделитель, убедитесь, что выбран вариант с разделителями. Если файл содержит поля фиксированного размера, убедитесь, что выбран параметр фиксированная ширина полей. Если вы не уверены, какие поля в файле, см. предыдущий раздел (Подготовка исходного файла).

    Примечание: Если исходный текстовый файл содержит знаки табуляции или другие специальные знаки, в мастере импорта текстовых файлов они отображаются в виде полей между столбцами данных.

  8. Нажмите кнопку Далее.

    В зависимости от выбранного варианта (файл с разделителями или с полями фиксированного размера) мастер отображает нужные сведения.

    С разделителями

    Выберите или укажите знак, разделяющий значения полей (табуляция, точка с запятой, запятая, пробел или другой). Если в файле используется ограничитель строк, выберите в поле Ограничитель текста двойные («) или одинарные () кавычки. Если первая строка исходного файла содержит имена полей, установите флажок Первая строка содержит имена полей. Затем нажмите кнопку Далее.

    Фиксированная ширина полей

    Мастер отображает содержимое файла. Если Access обнаруживает столбцы данных, для разделения полей вставляются вертикальные черты. Просмотрите предлагаемую мастером структуру и следуйте его инструкциям, если нужно добавить, удалить или исправить строки. Затем нажмите кнопку Далее.

  9. Если вы добавляете данные в существующую таблицу, перейдите к шагу 12. Если же данные импортируются в новую таблицу, нажмите кнопку Далее, чтобы просмотреть свойства полей, отображаемые в мастере.

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

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

    Access проверяет первые 25 строк каждого столбца, чтобы определить тип данных для соответствующего поля. Если первые 25 строк столбца содержат значения разных типов, например текст и числа, мастер предлагает тип данных, совместимый со всеми значениями столбца или их большинством (как правило, это текстовый тип данных). Хотя можно выбрать и другой тип данных, следует помнить, что значения, несовместимые с этим типом, будут в ходе импорта пропущены или преобразованы неправильно. Дополнительные сведения о том, как исправить неверные или отсутствующие значения, см. ниже в разделе Решение проблем, связанных с отсутствующими и неверными значениями в импортированной таблице.

  11. Чтобы создать индекс для поля, присвойте свойству Индексировано значение Да. Чтобы пропустить весь исходный столбец, установите флажок Не импортировать (пропустить) поле. Затем нажмите кнопку Далее.

  12. Если записи добавляются в новую таблицу, мастер предлагает указать для нее первичный ключ. При выборе варианта автоматически создать ключ Access добавляет поле счетчика в качестве первого поля конечной таблицы и автоматически заполняет его уникальными значениями кодов, начиная с 1. Нажмите кнопку Далее.

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

  13. Откроется последняя страница мастера. Если записи импортируются в новую таблицу, укажите ее имя в поле Импорт в таблицу. Если такая таблица уже существует, появится запрос о перезаписи ее содержимого. Нажмите кнопку Да, чтобы продолжить, или кнопку Нет, чтобы указать другое имя конечной таблицы.

    Для чего предназначена кнопка Дополнительно?

    Кнопка Дополнительно в мастере импорта текстовых файлов служит для создания или открытия спецификаций импорта в формате, который использовался в предыдущих версиях Access. Кнопку Дополнительно рекомендуется использовать только в том случае, если спецификации импорта, созданные в предыдущих версиях Access, требуется использовать в Access 2007. Если же вы хотите сохранить сведения об этой операции импорта, прочтите следующий раздел.

  14. Чтобы импортировать данные, нажмите кнопку Готово.

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

  15. Откройте конечную таблицу в режиме таблицы. Сравните данные в таблице с исходным файлом, чтобы убедиться в их правильности.

Что еще важно знать об импорте

  • Сведения о том, как сохранить сведения об импорте в виде спецификации, которую можно использовать повторно, см. в статье Сохранение параметров операции импорта или экспорта в виде спецификации.

  • Дополнительные сведения о запуске спецификаций см. в статье Выполнение сохраненной операции импорта или экспорта.

  • Дополнительные сведения о запуске спецификаций в определенное время см. в статье Планирование импорта или экспорта.

  • Сведения о том, как изменить имя спецификации, удалить ее или обновить имена исходных файлов, см. в статье Задачи управления данными.

Решение проблем, связанных с отсутствующими и неверными значениями в импортированной таблице

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

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

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

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

Совет: Если вы обнаружили лишь несколько отсутствующих значений, можно добавить их в таблицу вручную в режиме таблицы. Если же отсутствует или неправильно импортирован целый столбец либо большой объем данных, следует исправить исходный файл. После устранения всех возможных проблем повторите импорт.

Проблема

Решение

Значения –1 или 0

Если в исходном файле есть поле, которое содержит только значения «Истина» или «Ложь» либо только значения «Да» или «Нет», и для этого поля выбран тип данных «Логический», в таблице появятся значения –1 и 0. Откройте таблицу в режиме конструктора и задайте для свойства Формат значение Истина/Ложь или Да/Нет.

Многозначные поля

В Access импорт нескольких значений в одно поле не поддерживается. Список значений обрабатывается как одно значение и помещается в тестовое поле. Значения в поле разделяются точкой с запятой.

Усеченные данные

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

Отсутствуют данные в поле первичного ключа или индексированном поле

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

Пустые значения

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

  • Если в первых 25 строках исходного файла встречаются значения с разным типом данных, откройте файл и поменяйте порядок строк таким образом, чтобы в каждом поле в первых 25 строках тип данных совпадал. Затем попробуйте повторить импорт.

  • Заключите в одинарные или двойные кавычки все нетекстовые значения, которые вы хотите сохранить как текстовые.

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

Кроме того, может потребоваться просмотреть таблицу ошибок, о которой говорится на последней странице мастера, в режиме таблицы. Эта таблица содержит три поля: «Ошибка», «Поле» и «Строка». В каждой ее строке содержатся сведения об определенной ошибке, а данные в поле «Ошибка» можно использовать при устранении проблем.

Полный список ошибок и советы по устранению неполадок

Ошибка

Описание

Обрезка полей

Значение в поле превышает размер, заданный свойством FieldSize этого поля.

Ошибка преобразования типа

Значение в текстовом файле или на листе не соответствует типу данных поля. Это значение может быть заменено пустым или неверным значением в конечном поле. Дополнительные сведения об устранении этой проблемы см. в предыдущей таблице.

Нарушение уникальности ключа

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

Нарушение условия на значение

Значение не соответствует правилу, заданному для этого поля или таблицы с помощью свойства ValidationRule.

Пустое значение в обязательном поле

Данное поле не может иметь пустое значение, поскольку его свойство Обязательное поле (Required) имеет значение Да.

Пустое значение в поле счетчика

Импортируемые данные содержат пустое значение (NULL), и была выполнена попытка добавить его в поле счетчика.

Неинтерпретируемая запись

Текстовое значение содержит знак разделителя (как правило, это прямые кавычки). Если значение содержит знак разделителя, он должен содержаться в текстовом файле дважды, например:

по 10 дискет 3 1/2″» в коробке

К началу страницы

Создание связи с текстовым файлом

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

Когда вы создаете связь с текстовым файлом, Access создает таблицу, которая связана с исходным файлом. Все изменения, вносимые в исходный файл, применяются к связанной таблице. При этом изменение данных таблицы в Access не разрешается. Если вы хотите внести изменения в содержимое или структуру, откройте исходный файл и отредактируйте его.

Стандартные сценарии связывания с текстовым файлом из Access

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

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

Первое связывание с текстовым файлом

  • При связывании с текстовым файлом в Access создается новая таблица, которая называется также связанной таблицей. В ней отображаются данные исходного файла; при этом они не сохраняются в базе данных.

  • Текстовый файл невозможно связать с существующей таблицей базы данных. Другими словами, операция связывания не позволяет добавлять данные в существующую таблицу.

  • База данных может содержать несколько связанных таблиц.

  • Все изменения данных в исходном файле автоматически отражаются в связанной таблице. Однако содержимое и структура связанной таблицы Access доступны только для чтения.

  • При открытии текстового файла в Access создается пустая база данных и автоматически запускается мастер связывания с текстовыми файлами.

Шаги по созданию связи с текстовым файлом

  1. Найдите текстовый файл и откройте его в текстовом редакторе, например, в Word или Блокноте.

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

  2. Просмотрите данные исходного файла и выполните необходимые действия в соответствии с приведенной ниже таблицей.

    Элемент

    Описание

    Разделители или поля фиксированного размера

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

    Ограничители текста

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

    «Ольга Зуева»,25,4.5.2017,»Нижний Новгород»

    «Глеб Селезнев»,27,2018,»Вологда»

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

    • Разделитель является частью значения поля. Например, если в качестве разделителя используется запятая, а значение поля равно Самара, Вологда, его придется заключить в ограничители: «Самара, Вологда».

    • Вы хотите, чтобы Access обрабатывал нетекстовые значения, например 0452934 и 0034539, как текстовые и хранил их в текстовом поле.

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

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

    Количество полей

    Число исходных полей не должно превышать 255 , так как Access поддерживает не более 255 полей в таблице.

    Пропуск записей и полей

    Вы можете пропустить некоторые поля, но не записи.

    Пустые строки и поля

    Удалите все лишние пустые строки в файле. При наличии пустых полей постарайтесь добавить в них отсутствующие данные в исходном файле.

    Лишние символы

    Найдите и удалите лишние знаки (символы табуляции, перевода строки, возврата каретки).

    Типы данных

    Чтобы избежать ошибок при связывании, убедитесь, что типы данных в полях одинаковы для всех строк. Access считывает первые 25 строк файла, чтобы определить тип данных для полей таблицы. Настоятельно рекомендуем убедиться в том, что первые 25 исходных строк не содержат данные разных типов. Кроме того, нетекстовые значения, которые требуется обрабатывать как текстовые, необходимо заключить в одинарные или двойные кавычки.

    Если исходный файл содержит смешанные значения в строках, идущих после 25-й строки, они могут быть неправильно преобразованы или привести к ошибкам. Сведения об устранении проблем см. в разделе Решение проблем со значением #ЧИСЛО! и неверными значениями в связанной таблицедалее в этой статье.

    Имена полей

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

  3. Закройте исходный файл, если он открыт.

  4. Откройте базу данных, в которой требуется создать связь. Убедитесь, что база данных доступна не только для чтения и что у вас есть права на внесение в нее изменений.

    Если ни одна из существующих баз данных не подходит для хранения связи, создайте пустую базу данных.

  5. Расположение мастера импорта или связывания текста зависит от используемой версии Access. Выполните действия, которые соответствуют вашей версии Access.

    • Если вы используете Access 2019 или последнюю версию Access, которая предоставляется по подписке на Microsoft 365, на вкладке Внешние данные в группе Импорт и связи нажмите кнопку Создать источник данных и выберите Из файла > Текстовый файл.

    • Если вы используете Access 2016, Access 2013 или Access 2010, на вкладке Внешние данные в группе Импорт и связи нажмите кнопку Текстовый файл.

  6. Откроется диалоговое окно Внешние данные — Текстовый файл.

    Выберите вариант для импорта данных из текстового файла, их добавления или создания связи с ними.

  7. В диалоговом окне Внешние данные — Текстовый файл укажите имя текстового файла, который содержит данные для связывания, в поле Имя файла.

  8. Выберите вариант Создать связанную таблицу для связи с источником данных и нажмите кнопку ОК.

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

  9. Access проверит содержимое файла и предложит его структуру. Если в файле используется разделитель, убедитесь, что выбран вариант с разделителями. Если файл содержит поля фиксированного размера, убедитесь, что выбран параметр фиксированная ширина полей.

  10. Нажмите кнопку Далее.

  11. Следующая страница зависит от выбранного варианта (файл с разделителями или полями фиксированного размера).

    Файлы с разделителями.    Выберите или укажите знак разделителя для значений полей. Если в файле используется ограничитель строк, выберите в поле Ограничитель текста значение « (двойные кавычки) или (одинарные кавычки). Если первая строка исходного файла содержит имена полей, установите флажок Первая строка содержит имена полей. Затем нажмите кнопку Далее.

    Файлы с полями фиксированного размера.    Мастер отображает содержимое файла. Если Access обнаруживает столбцы данных, для разделения полей вставляются вертикальные черты. Просмотрите предлагаемую мастером структуру и следуйте его инструкциям, если нужно добавить, удалить или исправить строки. Затем нажмите кнопку Далее.

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

    Access проверяет первые 25 строк каждого столбца, чтобы определить тип данных для соответствующего поля. Если первые 25 строк столбца содержат значения разных типов, например текст и числа, мастер предлагает тип данных, совместимый со всеми значениями столбца или их большинством (как правило, это текстовый тип данных). Хотя можно выбрать и другой тип данных, следует помнить, что значения, несовместимые с этим типом, будут преобразованы неправильно или приведут к ошибкам. Дополнительные сведения см. ниже в разделе Решение проблем со значением #ЧИСЛО! и неверными значениями в связанной таблице.

    Для чего предназначена кнопка Дополнительно?

    Кнопка Дополнительно в мастере служит для создания или открытия спецификаций связывания в формате, который использовался в предыдущих версиях Access. В Access не поддерживается сохранение спецификации для связывания (в отличие от импорта и экспорта). Поэтому для сохранения спецификации связывания следует нажать кнопку Дополнительно, выбрать нужные параметры и нажать кнопку Сохранить как.

  13. Нажмите кнопку Далее.

  14. На последней странице мастера укажите имя связанной таблицы и нажмите кнопку Готово. Если таблица с указанным именем существует, появится запрос на ее перезапись. Нажмите кнопку Да, чтобы перезаписать файл, или кнопку Нет, чтобы задать другое имя таблицы.

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

К началу страницы

Решение проблем со значением #ЧИСЛО! и неверными значениями в связанной таблице

Даже если появится сообщение Завершено связывание таблицы, откройте таблицу в режиме таблицы и убедитесь, что все строки и столбцы содержат правильные данные.

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

Проблема

Решение

Значения –1 или 0

Если в исходном файле есть поле, которое содержит только значения «Истина» или «Ложь» либо только значения «Да» или «Нет», и для этого поля выбран тип данных Логический, в таблице появятся значения –1 и 0. Откройте таблицу в режиме конструктора и задайте для свойства Формат значение Истина/Ложь или Да/Нет.

Многозначные поля

При связывании в одном поле не может быть несколько значений. Список значений обрабатывается как одно значение и помещается в тестовое поле. Значения в поле разделяются точкой с запятой.

Усеченные данные

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

#ЧИСЛО!

Открыв таблицу в режиме таблицы, вы можете заметить, что некоторые поля содержат значение #ЧИСЛО! вместо фактического значения. Чтобы свести к минимуму количество значений NULL в таблице или избавиться от них совсем, выполните следующие действия:

  • Заключите в одинарные или двойные кавычки все нетекстовые значения, которые вы хотите сохранить как текстовые.

  • В ходе связывания выберите подходящий тип данных для каждого поля. Если выбран неверный тип данных, конечный столбец может содержать только значения #ЧИСЛО! во всех строках.

В приведенной ниже таблице содержится список случаев, в которых будут появляться ошибки #ЧИСЛО!.

Тип отсутствующих значений

Тип конечного поля

Действие

Текст

Числовое поле или поле даты

Замените все текстовые данные значениями, соответствующими типу данных конечного поля, и повторите попытку связывания.

Дата

Число

Замените все значения даты числовыми значениями и повторите попытку связывания.

Число

Дата

Замените все числовые значения значениями даты и повторите попытку связывания.

К началу страницы

Max Rivers

0 / 0 / 0

Регистрация: 12.03.2019

Сообщений: 3

1

15.03.2019, 14:51. Показов 1790. Ответов 6

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Доброго времени суток Уважаемые !
Научите пожалуйста как правильно таблицы из ворда в акцесс импортировать.
В текущем варианте реализовал примерно так:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
With WordOb.ActiveDocument.Tables(1)
     For i = 2 To .rows.Count
      sql = "INSERT INTO " & doctype & "(`prid`,`volnum`, `volname`, `volcontent`, `prim`) VALUES (" & Me.Controls![id] & "," & _
           IIf(Len(.cell(i, 1)) < 3, "NULL", Chr(34) & Replace(.cell(i, 1), Chr(13) + Chr(7), "") & Chr(34)) & "," & _
           IIf(Len(.cell(i, 2)) < 3, "NULL", Chr(34) & Replace(.cell(i, 2), Chr(13) + Chr(7), "") & Chr(34)) & "," & _
           IIf(Len(.cell(i, 3)) < 3, "NULL", Chr(34) & Replace(.cell(i, 3), Chr(13) + Chr(7), "") & Chr(34)) & "," & _
           IIf(Len(.cell(i, 4)) < 3, "NULL", Chr(34) & Replace(.cell(i, 4), Chr(13) + Chr(7), "") & Chr(34)) & ")"
      CurrentDb.Execute sql
      DoEvents
     Next
 End With

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

Вложения

Тип файла: zip sample.zip (92.4 Кб, 4 просмотров)



0



Eugene-LS

9728 / 4908 / 1195

Регистрация: 05.10.2016

Сообщений: 13,817

Записей в блоге: 1

15.03.2019, 18:03

2

Цитата
Сообщение от Max Rivers
Посмотреть сообщение

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

А попробуйте так (секунд 8 всего у меня):

Кликните здесь для просмотра всего текста

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
Private Sub Test01()
'Поцедура импорта ...
'--------------------------------------------------------------------------
Dim s$, i%
 
Dim oApp As Object
Dim oDoc As Object
Dim oTbl As Object
Dim rst As Recordset
 
Dim lPridID&
'--------------------------------------------------------------------------
On Error GoTo Test01_Err
    
    
'Зачистка
    s = "DELETE FROM doctype"
    CurrentDb.Execute s
    
    
'Установки
    's = "d:TempСостав_sample2.docx"
    s = CurrentProject.Path & "Состав_sample2.docx"
    
    Set oApp = CreateObject("Word.Application") 'Создаем приложение ворда
    oApp.Visible = True                         'Делаем приложение видимым
    Set oDoc = oApp.Documents.Open(s)           'Открываем найденный документ
    
    
'Установка значения для поля prid:
    'lPridID = Me.Controls![ID]
    'lPridID = Me!ID
    lPridID = 0
 
'Открытие рекордсета = doctype
    Set rst = CurrentDb.OpenRecordset("doctype", dbOpenDynaset)
    
    Set oTbl = oDoc.Tables(1)
    
    
    'oTbl.Cell(Row, Column)
    'Debug.Print oTbl.rows.count
    
    For i = 2 To oTbl.rows.count
        With rst
            .AddNew
             'Заполнение полей значениями
            !RecID = i - 1
            !prid = lPridID
            !volnum = CellVal(oTbl.cell(i, 1))
            !volname = CellVal(oTbl.cell(i, 2))
            !volcontent = CellVal(oTbl.cell(i, 3))
            !prim = CellVal(oTbl.cell(i, 4))
            .Update
        End With
    Next
 
    s = "Готово!" & vbCrLf & "Импортировано: " & i & " записей."
    MsgBox s, vbInformation
    
    
 
Test01_End:
    On Error Resume Next
    
    rst.Close
    Set rst = Nothing
    
    Set oTbl = Nothing
    oDoc.Close
    Set oDoc = Nothing
    oApp.Quit
    Set oApp = Nothing
    Err.Clear
    Exit Sub
 
Test01_Err:
    MsgBox "Error: " & Err.Number & vbCrLf & Err.Description & vbCrLf & _
    "in Sub: Test01 in module: 00_Tests", vbCritical, "Error in Application"
    Resume Test01_End
    
End Sub
 
Private Function CellVal(v As Variant) As Variant
'IIf(Len(.cell(i, 1)) < 3, "NULL", Chr(34) & Replace(.cell(i, 1), Chr(13) + Chr(7), "") & Chr(34))
'--------------------------------------------------------------------------
On Error GoTo CellVal_Err
    v = v & ""
 
    If Len(v) < 3 Then
        CellVal = Null
    Else
    'В кавычках:
        'CellVal = Chr(34) & Replace(v, Chr(13) + Chr(7), "") & Chr(34)
    'Без кавычек:
        CellVal = Replace(v, Chr(13) + Chr(7), "")
    End If
 
CellVal_End:
    On Error Resume Next
    Err.Clear
    Exit Function
 
CellVal_Err:
    'MsgBox "Error: " & Err.Number & vbCrLf & Err.Description & vbCrLf & _
    "in Function: CellVal in module: 00_Tests", vbCritical, "Error in Application"
    CellVal = "Err #: " & Err.Number
    Err.Clear
    Resume CellVal_End
End Function

Вложения

Тип файла: zip DatabaseTest_v01.zip (121.4 Кб, 7 просмотров)



3



Модератор

Эксперт MS Access

11343 / 4661 / 749

Регистрация: 07.08.2010

Сообщений: 13,512

Записей в блоге: 4

15.03.2019, 19:31

3

только вот таблица —иерархическая и формировать надо не 4-5 полей, а видимо 7-8
уже в аксесс —нормализовать

Номер тома Обозначение Наименование Примечание оооо
    Раздел 1. Станционные сооружения    
    Подраздел 1. Пусковой комплекс 2   контейнер
    Часть 1. ТрП-24Б Богородицк   здание
  104-18.3-ЛА1.1.1.1 Книга 1. ЛАЦ М22  
  104-18.3-ЭП1.1.1.2 Книга 2. Электропитание М40  
  104-18.3-КМ1.1.1.3 Книга 3. Конструкции металлические М40  
    Часть 2. ТрП-2з Задонск    
  104-18.3-ЛА1.1.2.1 Книга 1. ЛАЦ М22  
Раздел 1. Станционные сооружения Подраздел 1. Пусковой комплекс 2 Часть 1. ТрП-24Б Богородицк 5 Книга 1. ЛАЦ Книга 1. ЛАЦ М22
Раздел 1. Станционные сооружения Подраздел 1. Пусковой комплекс 2 Часть 1. ТрП-24Б Богородицк 6 Книга 2. Электропитание Книга 2. Электропитание М40
Раздел 1. Станционные сооружения Подраздел 1. Пусковой комплекс 2 Часть 1. ТрП-24Б Богородицк 7 Книга 3. Конструкции металлические Книга 3. Конструкции металлические М40
Раздел 1. Станционные сооружения Подраздел 1. Пусковой комплекс 2 Часть 2. ТрП-2з Задонск 9 Книга 1. ЛАЦ Книга 1. ЛАЦ М22
Раздел 1. Станционные сооружения Подраздел 1. Пусковой комплекс 2 Часть 2. ТрП-2з Задонск 10 Книга 2. Электропитание Книга 2. Электропитание М40



1



9728 / 4908 / 1195

Регистрация: 05.10.2016

Сообщений: 13,817

Записей в блоге: 1

15.03.2019, 20:08

4

Цитата
Сообщение от shanemac51
Посмотреть сообщение

только вот таблица —иерархическая и формировать надо не 4 поля, а видимо 7б

Не заметил!
Вроде как задачка так не стояла (может упустил чего?)



0



commun

450 / 238 / 14

Регистрация: 29.10.2014

Сообщений: 959

16.03.2019, 18:00

5

Цитата
Сообщение от shanemac51
Посмотреть сообщение

только вот таблица —иерархическая

Тогда можно делать схему:

Импорт таблицы из word

таблицы которой заполнять в БД:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Sub starting()
Dim db As DAO.Database
    Set db = CurrentDb
    DoCmd.RunCommand 546 'преобразовать в табл Состав исходный .txt,полученный как исходный .doc,сохраненный 
                                 'в формате MS-DOS
    db.Execute ("DELETE * FROM Состав WHERE (((Состав.Поле1) Is Null));") 'удалить пустые записи + удалить 4 первые записи
                                         '    заполнить исходные табл БД:
    db.Execute ("INSERT INTO Т1Разделы ( Раздел ) SELECT Поле1 FROM Состав WHERE (((Поле1) Like 'Раздел*'));")
    db.Execute ("INSERT INTO Т2ПодРазделы ( ПодРаздел ) SELECT Left([Поле1],12) AS Выражение1 FROM Состав " _
        & "GROUP BY Left([Поле1],12) HAVING (((Left([Поле1],12)) Like 'Подраздел *'));")
    db.Execute ("INSERT INTO Т3Части ( Часть ) SELECT Left([Поле1],8) AS Выражение1 FROM Состав GROUP BY " _
        & "Left([Поле1],8) HAVING (((Left([Поле1],8)) Like 'Часть ?.'));")
    db.Execute ("INSERT INTO Т3Части ( Часть ) SELECT Left([Поле1],9) AS Выражение1 FROM Состав GROUP BY " _
        & "Left([Поле1],9) HAVING (((Left([Поле1],9)) Like 'Часть ??.'));")
    db.Execute ("INSERT INTO Т4Книги ( Книга ) SELECT Left([Поле1],8) AS Выражение1 FROM Состав GROUP BY Left([Поле1],8) " _
        & "HAVING (((Left([Поле1],8)) Like 'Книга ?.'));")
    db.Execute ("INSERT INTO Т4Книги ( Книга ) SELECT Left([Поле1],9) AS Выражение1 FROM Состав GROUP BY Left([Поле1],9) " _
        & "HAVING (((Left([Поле1],9)) Like 'Книга ??.'));")
'      заполнение таблиц сборки согласно схеме данных:
'  далее код не предлагается   
End Sub

Вариант.zip



1



Max Rivers

0 / 0 / 0

Регистрация: 12.03.2019

Сообщений: 3

18.03.2019, 14:10

 [ТС]

6

Спасибо откликнувшимся, завтра, как доберусь до компа, попробую. Пока на счет нормализации наверно не смысла запариваться, хотят в форме видеть в таком-же виде как и в файле состава. попробую реализовать вариант Eugene-LS.
В пятницу еще попробовал реализовать вставку в таблицу через буффер обмена, но тоже «не срослось»
по сути есть таблица со списком проектов projects и пара таблиц с составами (с проектной «prdoc» и рабочей «rabdoc» документацией соответственно) связанные по полю prid c основной таблицей. и на форме соответственно лежит tabcontrol во вкладках которого соответственно подчиненные формы привязанные к этим таблицам(PrDocForm и RabDocForm). Вставку пытался сделать примерно так (не за компом, пишу по памяти, возможны ошибки):

Visual Basic
1
2
3
4
5
6
7
8
9
10
With WordOb.ActiveDocument.Tables(1)
  Set MyRange = WordOb.ActiveDocument.range(.rows(1).cells(2).range.start, .rows(.rows.Count).cells(4).range.End)
  MyRange.select
  WordOb.ActiveDocument.Activewindow.selection.copy
 End With
  'me.Controls(doctype).SetFocus 
  'DoCmd.GoToRecord Record:=acNewRec ##так тоже не работало :)
  DoCmd.GoToRecord acDataForm, Me.Controls(doctype).Name, acNewRec
  DoCmd.RunCommand acCmdSelectRecord
  DoCmd.RunCommand acCmdPaste

в doctype передается имя подчиненной формы PrDocForm или RabDocForm соответственно.
Вот передать фокус на подчиненную форму и не получалось. При отработке «DoCmd.GoToRecord Record:=acNewRec» производилась попытка перейти на новую запись в основной форме. если кинете примером вставки из буфера значений в элементы подчиненной формы, буду безмерно благодарен…
Ctrl+C -> Ctrl+V отрабатывает успешно, осталось програмно повторить



0



Max Rivers

0 / 0 / 0

Регистрация: 12.03.2019

Сообщений: 3

20.03.2019, 13:29

 [ТС]

7

Итак подведем итоги моих мучений
Решив не доверять субъективным ощущениям впилил в процедуру счетчик.
В результате мой изначальный вариант на моем компе выполняется 20 сек
Вариант предложенный Eugene-LS 18 сек.
Решил попробовать через экспорт таблицы в CSV (текст с разделителями). После полудня

мучений

проб и ошибок родился следующий «франкенштейн»:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Private Sub ImportSostav3(doctype)
 Dim WordOb As Object
 Dim WordDoc As Object
 Dim TmpTbl As Word.Table
 Dim s As String
 Dim MyRange As Word.Range
 Dim btime As Date
 
 On Error GoTo ImportSostav3_Err
 
 'функция вызова окна диалога открытия файла (где взял не помню)
 s = OpenFileDialog(CurrentProject.path, "Состав*", "Составы проектов", "*.doc;*.docx") 
 btime = Time 'время начала процедуры
 Set WordOb = CreateObject("Word.Application")
 Set WordDoc = WordOb.Documents.Open(s)
 Set TmpTbl = WordDoc.Tables(1)
 
'следующие "2 строки не работали пока не включил Microsoft Word Object library"
 Set MyRange = TmpTbl.ConvertToText(Separator:=wdSeparateByTabs) 'преобразуем таблицу в текст
 MyRange.ExportFragment CurrentProject.path & "templatestmp.csv", wdFormatText 'сохраняем в файл
 
 If IsExists("tmp") Then CurrentDb.Execute "drop table tmp" 'проверка наличия временной таблицы. если есть - убить
 s = "DELETE * FROM " & doctype & " where prid=" & Me.Controls![id] 'очищаем таблицу которую передали в переменной doctype
 CurrentDb.Execute s
'импорт во временную таблицу tmp данных из csv файла согласно спецификации csv-imp
'сохраненную во время работы мастера импорта из текстовых файлов
DoCmd.TransferText acImportDelim, "csv-imp", "tmp", CurrentProject.path & "templatestmp.csv", 0
' Переливаем данные из временной таблицы в основную
 s = "INSERT INTO " & doctype & "(prid, volnum, volname, volcontent, prim ) SELECT " & Me.Controls![id] & " as prid,tmp.volnum, tmp.volname, tmp.volcontent, tmp.prim FROM tmp;"
 CurrentDb.Execute s
 Me.Requery
 
  s = "Готово!" & vbCrLf & "Импортировано: " & CurrentDb.TableDefs("tmp").RecordCount & " записей. за " & DateDiff("s", btime, Time) & " секунд"
    MsgBox s, vbInformation
  
 
ImportSostav3_End:
    On Error Resume Next
  
  Set TmpTable = Nothing
  WordDoc.Close wdDoNotSaveChanges
  Set WordDoc = Nothing
  WordOb.Quit
  Set WordOb = Nothing
  Exit Sub
 
ImportSostav3_Err:
    MsgBox "Error: " & Err.Number & vbCrLf & Err.Description & vbCrLf & _
    "in Sub: ImportSostav3 ", vbCritical, "Error in Application"
    Resume ImportSostav3_End
  
End Sub
 
Public Function IsExists(tblName As String) As Boolean
On Error Resume Next
Dim realName As String
IsExists = False
realName = CurrentData.AllTables(tblName).Name
If realName = tblName Then IsExists = True
End Function

На файле примера отрабатывает за 4 сек с учетом запуска ворда.
Пожалуй на этом закончу попытки оптимизации. Как сделать вариант с «копипастой» так и не понял
Еще раз спасибо всем откликнувшимся, ну и если в данной процедуре что-то делается некорректно или не оптимально просьба ткнуть носом, я только учусь )



0



Эта программа не только позволяет пользователям экспортировать данные из баз данных в другие программы, такие как Microsoft Word, но это также позволяет им импортировать и связывать данные из текстового документа в базу данных в О компании . Таким образом, они могут добавлять дополнительную информацию в свои электронные таблицы в расчетном программном обеспечении.

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

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

На случай, если текстовые файлы, они содержать символы Simples удобочитаемый , такие Только числа, специальные символы, такие как Только табуляции, разрывы строк и буквы . В случае Microsoft Доступ к нему позволяет использовать определенные совместимые форматы с вашей системой, например:. csv, .tab, .txt, .asc. Если вы хотите использовать текстовый файл в качестве исходного файла для ссылки или импорта, он Важно учитывать следующее:

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

Чтобы вы могли понять это немного больше, мы объясним каждый из них:

Файлы с разделителями

Файлы с разделителями — это место, где каждый из записи появляется в другой строке и поля разделены одним символом , это называется разделитель. Обратите внимание, что это может быть любой символ, которого нет в значения поля , в виде: точказапятая (;), пробел, табуляция, запятая (,), точка (.), Среди прочего.

Файлы фиксированной ширины

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

Первое поле Регистрация всегда будет семь персонажей Для вторая запись, длина всегда будет 12 символов и так далее для других записей. Если фактические значения длины варьироваться от одной записи к другой, эти значения не достигнут не нужная ширина дополнить конечными пробелами.

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

Когда эти типы завозные de данные , О компании Предназначен для создать копию данных в базе данных место назначения без необходимости изменить источник. Когда процедура будет завершена, у вас есть возможность выбрать нужные вам объекты. ссылка или импорт , таким образом вы можете контролировать, как таблицы и запросы будет переведен и таким же образом указать, есть ли отношения между таблицами.

Однако эти процедуры выполняются с целью магазин все или часть данных, содержащихся в текстовый файл Dans Une База данных Microsoft Access . Этот процесс можно выполнить, вставив всю эту информацию в один существующая или новая база данных . Таким образом, пользователь не может увидеть эту информацию или даже иметь возможность манипулировать ею, редактируя ее содержимое.

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

Также важно, чтобы при выполнении этого процесса учитывались следующие аспекты:

  • Когда данные связаны, многие из них обычно находятся в формат, который не распознается Access, и эти данные очень важны для использования в база данных программы . Если это произойдет, вы можете экспортировать исходные данные в виде текстового файла , затем импортируйте контент текстового файла в таблице Access.
  • Обычно пользователи используют О компании для управлять данными, но данные в текстовом формате обычно поступают из разных программ, для этого данные должен быть импортирован через регулярные промежутки времени и другие ускорить процесс импорта , это позволит работа и время возможно сохранен .

Пошаговые инструкции по импорту и связыванию данных из текстового документа в Microsoft Access

Важно отметить, что процесс импорта и связывания выполняются по-разному, оба очень просты в исполнении, хотя можно считать как довольно обширная процедура . Вот почему мы собираемся научить вас шаг за шагом, как импортировать или связывать данные из текстового документа в Microsoft Excel.

Для этого следуйте каждому из этих методов:

импортер

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

Для этого вам необходимо выполнить каждый из следующих шагов:

Подготовьте исходный файл

Первый этап включает в себя подготовить исходный файл для этого вы должны откройте исходный текстовый файл в текстовом редакторе, например что Блокнот.

Затем вам нужно изучить содержимое исходного текстового файла и выполнить одно из следующих действий, которым мы вас научим:

  • Ограниченная или фиксированная ширина: Здесь вы должны убедиться, что файл всегда соответствует каждому из форматов. В случае, если он разграничен, вы должны определить разделитель . Теперь, если у него есть поле фиксированная ширина , вы должны убедиться, что каждое из полей имеет одинаковую ширину в каждой записи.
  • Квалификаторы текста: в случае файлов с разделителями они могут содержать значения полей, заключенные в одинарные или двойные кавычки.
  • Количество полей: номера исходных полей не могут быть больше 255, потому что Microsoft Access не поддерживает более 255 полей в таблице.
  • Игнорировать записи и значения: он используется, когда вас интересует только часть текстовый файл, для этого вы редактируете исходный файл перед начать процедуру импорта . Имейте в виду, что после его запуска пропустить записи больше нельзя.
  • Странные персонажи: Здесь вам нужно просмотреть все данные и удалить лишние символы, такие как перевод строки, возврат каретки и табуляция.
  • Пустые строки и поля: применяется в случае, если вы хотите удалить все ненужные пустые строки в файле , во многих случаях из Елисейские Vides вставляются ненужные. Чтобы добавить записи в существующую таблицу, вы должны убедиться, что соответствующее поле таблица принять новые ценности , иначе они не могут быть добавлены.
  • Типы данных: если вы хотите избежать ошибок во время импорта, вы должны быть абсолютно уверены, что каждое поле источника содержит данные одного и того же типа в каждой строке. В этих случаях программа проверяет, что ле Первые 25 строк файла для определения типа данных, содержащихся в таблице. Поэтому в первые 25 строк рекомендуется не смешивать в полях значения с разными типами данных.
  • Имена полей: для текстовые файлы с разделителями , если он не включает названия полей , то это очень хорошая альтернатива разместить их в первая линия . Когда процесс импорта, у пользователя есть возможность указать что Access обрабатывает значения в первой строке полей как имена полей.

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

Начать процесс импорта

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

Для этого имейте в виду следующие моменты:

  • Создайте новую таблицу: когда данные сохраняются в новая таблица, Access создает таблицу и добавляет в нее импортированные данные , в случае, если таблица уже существует с имя, которое было выбрано , программа перезаписывает содержимое импортированной таблицы данных.
  • Добавить существующую таблицу: Сейчас , если данные добавлены в существующая таблица, затем процесс импорта данных добавляет к указанной таблице.

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

Чтобы избежать этих возможных ошибок во время импорта, необходимо просмотреть следующие аспекты таблицы в режиме разработки:

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

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

Посмотрим:

  • Дополнительные или отсутствующие поля: Возможно, что одно или несколько полей не появятся в целевой таблице, для этого вы должны добавить их перед le начиная процесса импорта . Теперь, если целевая таблица содержит поля, которых нет в исходный файл , вам не нужно удалять их из таблицы, если там допустимы нулевые значения.
  • Первичный ключ: если таблица содержит поле первичного ключа, исходный файл должен иметь столбец с ценности, совместимые с le поле первичного ключа. Кроме того, эти значения должны быть совершенно уникальный . Для импортированных записей, содержащих значение первичного ключа, которое уже существует в целевой таблице, процедура импорта завершится ошибкой.
  • Перечисленные поля: Если индексированная собственность поля в таблице установлено на Да, затем столбец в исходном текстовом файле должны быть уникальные ценности.

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

Здесь вам нужно выбрать шаги, соответствующие используемой вами версии:

  • Для версии ле последний из Access , будь то версия Подписка de Microsoft 365 Access или Access 2019, ты должен перейти на вкладку «Внешние данные» и там переходим в раздел «Импорт и ссылка» затем выберите «Новый источник данных», затем «Из файла» et «Текстовый файл» в последний.
  • Теперь, если вы используете версии Access 2010, Access 2013 или Access 2016, вы также должны перейти на вкладку «Данные внешний « и в разделе «Импорт и ссылка» вы должны выбрать «Текстовый файл».

После всего этого Access откроет диалог «Получить внешние данные — текстовый файл» .

Затем в диалоговом окне «Получить внешние данные — Fichier тексты » , ты должен войти в Поле «Имя файла» и укажите имя исходного файла.

«ОБНОВЛЕНИЕ ✅ Хотите связать данные из текстового файла с базой данных Access? ⭐ ВОЙДИТЕ ЗДЕСЬ ⭐ и узнайте все о SCRATCH! »

Далее вам нужно указать, как вы хотите сохранить импортированные данные:

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

Следующее, что нужно сделать, это нажать на «OK», О компании начинать автоматически à проверить содержимое файла и посоветуйте, как это можно правильно организовать. Если в файле используется разделитель для отдельные поля, тогда необходимо, чтобы опция с разделителями быть включенным, теперь, если он использует поля фиксированной ширины , то вариант «Фиксированная ширина» должен быть выбран .

После этого нажмите на опцию «Далее», опция, которая появится здесь, будет зависеть от того, какой вариант вы выбрали, будь то «С разделителями» или «Фиксированная ширина»:

  • С разделителями: если была выбрана эта опция, вы должны указать символ, который разделяет значения полей . Если первая строка исходного файла содержит имена полей, вы должны проверить box «Первая строка содержит названия полей» , puis cliquer sur «Следующий».
  • Фиксированная ширина: Если программа обнаружит в данных структуру столбцов, она поместит вертикальные линии в данных, чтобы отделить их от полей. Здесь вы должны увидеть структуру, рекомендованную мастером, и при необходимости вы должны следовать инструкциям на странице мастера, чтобы иметь возможность «Добавлять, удалять или корректировать строки» для этого нажмите на «Следующий».

Если данные необходимо импортировать в новую таблицу, вам нужно нажать «Следующий» и там вы должны просмотреть свойства поля которые отображаются в мастер импорта. Теперь вы должны щелкнуть по одному из

Есть ли способ импортировать данные из таблицы в файле Word 2003 (Doc) в Access 2010?Я пробовал меню «Внешние данные» в Access 2010, но у него нет опции для импорта из файла Doc.

На самом деле я не создавал файлы Doc.У меня есть около 50 файлов Doc, и я должен импортировать их данные в базу данных Access. Спасибо.

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

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

изменён hasanghaforian544

Давайте предположим, что ваши таблицы в Word довольно простые (без объединенных ячеек и т.д.). Тогда для каждого стола

  1. Удалите все строки заголовков, которые вам не нужны. Вам также может понадобиться выбрать повторяющиеся заголовки и сделать их неповторяющимися.
  2. При необходимости добавьте строку заголовка, содержащую имена столбцов, которые вы хотите в Access.
  3. Выделите всю таблицу с помощью поля выбора над верхней левой ячейкой таблицы и нажмите ctrl-C в буфере обмена.
  4. В Access создайте новую таблицу. Здесь я вижу новую пустую таблицу, отображаемую в виде таблицы данных со столбцом идентификатора, и ячейку, выбранную в столбце с названием «нажмите, чтобы добавить».
  5. Ctrl-V, чтобы вставить данные.

Строка заголовка таблицы должна использоваться для создания имен столбцов Access. Затем вы можете делать все остальное, что вам нужно, например, дизайн таблицы Access, запросы и т.д.

Возможно, вы захотите взглянуть на эту статью Stackoverflow. Это может помочь вам получить данные из Word в Excel. Как только вы получите его в Excel, вы можете использовать мастер импорта, чтобы поместить данные в таблицу Access. Я не нашел ничего, чтобы импортировать напрямую из Word в Access.

Понравилась статья? Поделить с друзьями:
  • Преобразовать vsd в word онлайн
  • Преобразователь odt в word онлайн
  • Преобразовать vcf в word
  • Преобразователь ods в excel
  • Преобразовать tiff в excel онлайн