Как изменить тип данных в access

У меня есть огромная база данных (800 МБ), которая состоит из поля под названием "Дата последнего изменения" на данный момент, когда это поле вводится как текстовый тип данных, но необходимо изменить его на поле Дата/Время для выполнения некоторых запросов.

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

После некоторых исследований некоторые сайты, упомянутые об изменении файла реестра (MaxLocksPerFile), также попытались это сделать, но не повезло: — (

Может ли кто-нибудь помочь?

database ms-access ms-access-2007

8 ответов

1 Решение Beska [2010-03-12 01:12:00]

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

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

Предполагая, что у вас есть какой-то целочисленный ключ в таблице, который варьируется от 1 до (скажем) 10000000, вы можете просто делать такие запросы, как

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

Если ваши ключи — это что-то еще, вы можете делать то же самое, но вам нужно быть немного более сложными в своих предложениях WHERE.

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

ИЗМЕНИТЬ

Поскольку у вас все еще есть проблемы, вот еще несколько деталей в надежде, что вы увидите что-то, что я не описал достаточно хорошо:

Здесь вы можете видеть, что я создал таблицу OutputIDrive, аналогичную тому, что вы описываете. У меня есть тег ID, хотя у меня есть только три записи. alt text http://www.freeimagehosting.net/uploads/2829dbd2d3.png

Здесь я создал запрос, перешел в режим SQL и ввел соответствующий оператор SQL. В моем случае, поскольку мой запрос только захватывает значение >= 0 и

Теперь вы можете просто изменить имя таблицы и числовые значения в вашем SQL-запросе и запустить ее снова.

Надеюсь, это поможет вам с тем, что вас подвело.

ИЗМЕНИТЬ 2:

Ага! Это трюк. Вы должны вводить и запускать операторы SQL по одному в Access. Если вы попытаетесь ввести несколько операторов и запустить их, вы получите эту ошибку. Итак, запустите первый, затем удалите его и запустите второй и т.д., И все будет в порядке. Я думаю, что это сделает! Я отредактировал это, чтобы сделать его более ясным.

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

Если, как и я, у вас много сложных отношений и отчетов на старой таблице, которые вы не хотите повторять, попробуйте этот вариант вместо решения @user292452:

  • Скопируйте таблицу (т.е. ‘YourTable’ ), затем вставьте только структуру. в вашу базу данных с другим именем (т.е. ‘YourTable_new’ ).
  • Скопируйте YourTable снова и вставьте данные в YourTable_new . (Чтобы вставить-добавить, сначала вставить и выбрать Добавить данные в существующие Таблица.)
  • Вы можете сделать копию своей базы данных Access в этот момент, на всякий случай что-то пойдет не так с следующей частью.
  • Удалить все данные в YourTable с помощью запроса на удаление — выбрать все поля, используя звездочку, а затем запустить с настройками по умолчанию.
  • Теперь вы можете изменить поля в YourTable по мере необходимости и сохранить еще раз.
  • Вставить-добавить данные от YourTable_new до YourTable и проверить что ошибок преобразования типов, длины и т.д. не было.
  • Удалить YourTable_new .

1 mwolfe02 [2016-02-05 21:43:00]

Адаптировано из ответ Карла Донаубауэра на сообщение MSDN:

    Переключиться в ближайшее окно (Ctl + G)

Выполните следующее утверждение:

DBEngine.SetOption dbMaxLocksPerFile, 200000

Microsoft имеет статью KnowledgeBase, которая напрямую решает эту проблему и описывает причину:

Блокировки страниц, необходимые для транзакции, превышают значение MaxLocksPerFile, которое по умолчанию составляет 9500 блокировок. Параметр MaxLocksPerFile хранится в реестре Windows.

В статье KnowledgeBase говорится, что она применяется к Access 2002 и 2003, но она работала для меня при изменении поля в .mdb из Access 2013.

Читайте также:  Как очистить чат в скайпе на компьютере

У меня была эта проблема.

дисковое пространство и доступная память были в порядке.

проблема исчезла после "компактного и исправленного".

0 [2010-03-12 18:37:00]

Скопируйте таблицу (т.е. "YourTable" ), затем вставьте ее структуру обратно в вашу базу данных с другим именем (т.е. "YourTable_new" ).

Измените поля в новой таблице на то, что вы хотите, и сохраните.

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

Надеемся, что Access автоматически преобразует старое текстовое поле непосредственно в правильное значение для нового поля Date/Time. Если нет, вам может потребоваться очистить старую таблицу и повторно добавить все данные и использовать функцию string to date, чтобы преобразовать это одно поле при добавлении.

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

Вам предложили несколько способов обойти сообщение об ошибке на диске.

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

Если он все еще не работает, вы можете сделать это с помощью таблицы sceond с двумя столбцами, первым длинным целым числом (сделайте его первичным ключом), вторым — датой. Затем добавьте поле PK и строку даты в эту пустую таблицу. Затем добавьте новое поле даты в существующую таблицу и, используя соединение, обновите новое поле со значениями из таблицы с двумя столбцами.

Это может столкнуться с той же проблемой. Это зависит от количества вещей, внутренних для ядра базы данных Jet/ACE, над которыми мы не имеем реального контроля.

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

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

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

Если вам понадобится следующее:

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

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

Если сообщение об ошибке НЕ является правильным (что возможно), наиболее вероятная причина — это плохая или внедиапазонная дата в столбце текстовой даты.

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

В этой статье объясняется, как изменить тип данных для поля таблицы в базе данных Access.

В этой статье

Общие сведения о типах данных

При проектировании и создании базы данных вы планируете одну или несколько таблиц, планируете поля (столбцы) для каждой таблицы, а также укажите тип данных для каждого поля. Например, если необходимо сохранить дату и время, для поля задается тип данных "Дата/время". Если вам нужно хранить имена и адреса, задайте для одного или нескольких полей Тип данных "текст" и т. д.

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

Дополнительные сведения о создании и использовании полей подстановки можно найти в статье Создание и удаление многозначного поля.

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

Читайте также:  Как вызвать на экран панели инструментов

Изменение типа данных

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

Примечание: В Access вы можете задать тип данных для поля как в режиме таблицы, так и в Конструкторе. В этом разделе описываются оба метода. При настройке типа данных в Конструкторе будет доступен еще один вариант ( Мастер подстановки). Он фактически не является типом данных. Мастер подстановки используется для создания полей подстановки, которые связывают поля внешних ключей с другими таблицами. По умолчанию Access задает для полей подстановки тип данных "Число".

Изменение типа данных в режиме таблицы

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

Таблица откроется в режиме таблицы.

Выберите поле (столбец), которое вы хотите изменить.

На вкладке Поля в группе Свойства щелкните стрелку в раскрывающемся списке рядом с полем Тип данных, а затем выберите тип данных.

Изменение типов данных в Конструкторе

Если таблица открыта в режиме таблицы, щелкните правой кнопкой мыши ее вкладку документа и выберите пункт Конструктор.

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

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

Ограничения на изменение типов данных

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

числовые поля с включенным свойством Код репликации;

поля объектов OLE;

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

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

Конечный тип данных

Преобразуемый тип данных

Изменения и ограничения

255 первых знаков остаются, остальные удаляются.

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

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

Изменение таблиц

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

Добавление и изменение полей

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

Чтобы добавить новое поле в существующую таблицу:

  1. Откройте таблицу, затем щелкните заголовок с текстом. Нажмите «Добавить». Если у вас уже есть несколько полей, вам может потребоваться прокрутить весь путь вправо, чтобы увидеть это.
  2. Появится раскрывающееся меню. Выберите тип данных, который вы хотите использовать для нового поля.
    • Текст : это параметр по умолчанию и лучше всего подходит для текста. Вы также должны выбрать его для чисел, с которыми вы не планируете заниматься математикой, например, почтовые индексы и номера телефонов.
    • Номер : это лучше всего для чисел, которые вы, возможно, захотите сделать с помощью, например, количества заказанного или проданного предмета.
    • Валюта : это автоматически форматирует номера в валюте, используемой в вашем регионе.
    • Дата и время : это позволяет вам выбрать дату из всплывающего календаря.
    • Да / Нет : вставляется флажок в поле.
    • Напоминание : это идеально подходит для большого количества текста, например описания продукта. Вы можете форматировать текст, введенный в поле memo.
    • Приложение . Это позволяет вам прикреплять файлы, например изображения.
    • Гиперссылка : создает ссылку на веб-сайт или адрес электронной почты.
    • Введите имя для своего поля, затем нажмите Enter.

    Чтобы переместить поле:

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

    Расширенные параметры поля

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

    Читайте также:  Как перевести ноутбук в безопасный режим

    Почему это важно? Компьютеры не так умны, как люди, о некоторых вещах. Хотя вы можете признать, что два и 2 или NC и Северная Каролина — одно и то же, Access не будет, и поэтому он не будет группировать эти вещи вместе. Обеспечение ввода данных в стандартном формате поможет вам лучше организовать, рассчитать и понять его.

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

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

    Чтобы изменить тип данных для существующих полей:

    1. Выберите поле, тип данных которого вы хотите изменить.
    2. На ленте выберите вкладку «Поля», затем найдите группу «Форматирование». Нажмите стрелку раскрывающегося списка Тип данных.
    3. Выберите нужный тип данных.
    4. Тип данных поля будет изменен. В зависимости от выбранного вами типа данных вы можете заметить изменения в своей информации. Например, поскольку мы установили тип данных для поля «Электронная почта» в «Гиперссылка», все адреса электронной почты в этом поле теперь доступны для ссылок.

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

    Предельные значения полей

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

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

    Чтобы установить лимит символов для поля:

    1. Выберите нужное поле.
    2. Перейдите на вкладку «Поля» в группе вкладки «Инструменты таблицы», затем найдите группу «Свойства».
    3. В поле рядом с полем «Размер поля» введите максимальное количество символов, которое вы хотите разрешить в своем поле.
    4. Сохраните таблицу.

    Правила валидации

    Правило проверки это правило, которое диктует, какую информацию можно ввести в поле. Когда правило проверки правильное, пользователь не может вводить данные, нарушающие правило. Например, если мы просим пользователей ввести имя состояния в таблицу с контактной информацией, мы можем создать правило, которое ограничивает допустимые ответы на почтовые индексы штата США. Это помешало бы пользователям вводить что-то, что на самом деле не являлось реальным почтовым кодом штата.

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

    Чтобы создать правило проверки:

    1. Выберите поле, в которое вы хотите добавить правило проверки. В нашем примере мы установим правило для поля State.
    2. На ленте выберите вкладку «Поля», затем найдите группу «Проверка поля ». Нажмите выпадающую команду «Проверка», затем выберите «Правило проверки поля».
    3. Появится диалоговое окно «Конструктор выражений» . Щелкните текстовое поле и введите свое правило проверки.
      • В нашем примере, мы хотим ограничить данные в государственном поле для фактического состояния почтовых кодов. Мы будем вводить каждый из допустимых ответов в кавычках и разделять их словом Or, что позволяет Access знать, что это поле может принимать ответ «AL» или «AK» или «AZ» или любое другое выражение, вступил.
      • После того как вы удовлетворены правилом проверки, нажмите «ОК» . Диалоговое окно закроется.
      • Еще раз нажмите кнопку «Выдавить подтверждение» . На этот раз выберите «Сообщение проверки поля».
      • Появится диалоговое окно «Ввести подтверждение» . Введите фразу, которую вы хотите отобразить в сообщении об ошибке, когда пользователь пытается ввести данные, нарушающие правило проверки. Ваше сообщение должно информировать пользователя о том, какие данные разрешены.
      • Когда вы удовлетворены сообщением об ошибке, нажмите «ОК».
      • Правило проверки теперь включено в поле. Пользователи не смогут вводить данные, нарушающие правило.

      Дополнительные параметры таблицы

      Вычисленные поля и итоговые строки

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

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

      Adblock
      detector