2015-06-12 2 views
0

Я создал веб-приложение Access (2013), чтобы отслеживать инвентаризацию устройств для клиента. Они хотят иметь возможность массового обновления базы данных с использованием таблиц Excel, которые генерируются из заказов. Я уже знаю, что нет способа импортировать/обновлять данные в существующую таблицу в AWA, поэтому я пытаюсь создать макрос данных, который будет сравнивать импортированную таблицу с существующей таблицей, а также добавлять новые записи или редактировать существующие.Таблицы «Слияние» в Access Web App с использованием макроса данных

На данный момент я просто пытаюсь заставить первую часть работать - добавить новые записи. Однако, независимо от того, что я пытаюсь, мой макрос данных продолжает давать мне ошибку «Access не может преобразовать значение« N/A »в указанный тип данных».

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

я нашел на одной странице, кто сказал "Data Macros forbid the use of “CreateRecord cannot be used inside of a ForEachRecord” ", но я ничего, чтобы поддержать, что где-нибудь не нашел.

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

моего Macro выглядит так:.

For Each Record In ImportTest 
     Where Condition 
    SetLocalVar 
       Name IsMatch 
       Expression = 0 
    Look Up A Record In Inventory List 
      Where Condition = [InventoryList].[SerialNumber]=[ImportTest].[Serial Number] 
     SetLocalVar 
        Name IsMatch 
        Expression = 1 
    If [IsMatch]=0 Then 
    Create a Record In Inventory List 
     Set Field 
      Name InventoryList.BuildingName 
      Value = 1 
     Set Field 
      Name InventoryList.SerialNumber 
      Value = [ImportTest].[Serial Number] 
    End If 

так, чтобы объяснить, что моя цель , если я сделал это неправильно: «Для каждой записи в ImportTest» просматривает импортированную таблицу (нет условия, потому что я хочу всех). Первый «SetLocalVar IsMatch» должен дать макрос способ узнать, соответствует ли серийный номер в таблице импорта другой записи в существующей таблице InventoryList (вот где я тогда обновляю эту запись, как только я ее все заработаю). Далее мой «If [IsMatch] = 0», который проверяет, была ли найдена соответствующая запись (было бы установлено 1, если бы она нашла совпадение раньше). Поскольку совпадение не найдено, оно создает запись в InventoryList, используя текущую запись, на которую указывает цикл For Each Record. У меня на самом деле есть много других полей, которые будут установлены, но эти два являются только для моего доказательства концепции (мой InventoryList требует этих двух полей). На этом этапе он должен завершить добавление записи, затем нажать на конец цикла и начать заново. Тем не менее, мой след показывает «CreateRecord» Генерирование SQL исключения:

MacroName-ActionName-Operand-Output-TargetRow-RuntimeErrorMessage 
ImportMacro-ForEachRecord-ImportTest;--- 
ImportMacro-ForEachRecord---[ID] = 1 ; [Serial Number] = TESTTEST1 ; [Building Name] = Glendaal Elementary School- 
ImportMacro-SetLocalVar-IsMatch-0.000000-- 
ImportMacro-LookupRecord-InventoryList;WHERE [InventoryList].[SerialNumber]=[ImportTest].[Serial Number]--- 
ImportMacro-If-[IsMatch]=0--- 
ImportMacro-CreateRecord---- 
ImportMacro-If-[ImportTest].[Building Name]="Glendaal Elementary School"--- 
ImportMacro-SetField-InventoryList.BuildingName-1-- 
ImportMacro-SetField-InventoryList.SerialNumber-TESTTEST1-- 
ImportMacro-CreateRecord----SQL exception 

Я не могу понять, почему он делает это последний «CreateRecord», генерирующее исключение. Кто-нибудь видит то, что я, возможно, пропустил, или предложения о том, как действовать?

Заранее благодарим всех, кто помогает. ~ SetsunaMH

Текущая версия ImportTest макро данных:

<?xml version="1.0" encoding="UTF-16" standalone="no"?> 
<DataMacros xmlns="http://schemas.microsoft.com/office/accessservices/2010/12/application"><DataMacro><Statements><ForEachRecord><Data><Reference>ImportTest</Reference></Data><Statements><Action Name="SetLocalVar"><Argument Name="Name">IsMatch</Argument><ExpressionArgument Name="Value"><Expression><Original>0</Original><IntegerLiteral Value="0"/></Expression></ExpressionArgument></Action><LookUpRecord><Data><Reference>InventoryList</Reference><WhereCondition><Expression><Original>[InventoryList].[SerialNumber]=[ImportTest].[Serial Number]</Original><FunctionCall Name="="><Identifier Name="InventoryList.SerialNumber" Index="0"/><Identifier Name="ImportTest.Serial Number" Index="1"/></FunctionCall></Expression></WhereCondition></Data><Statements><Action Name="SetLocalVar"><Argument Name="Name">IsMatch</Argument><ExpressionArgument Name="Value"><Expression><Original>1</Original><IntegerLiteral Value="1"/></Expression></ExpressionArgument></Action></Statements></LookUpRecord><ConditionalBlock><If><Condition><Expression><Original>[IsMatch]=0</Original><FunctionCall Name="="><Identifier Name="IsMatch" Index="0"/><IntegerLiteral Value="0" Index="1"/></FunctionCall></Expression></Condition><Statements><CreateRecord><Data><Reference>InventoryList</Reference></Data><Statements><Action Name="SetField"><Argument Name="Field">InventoryList.BuildingName</Argument><ExpressionArgument Name="Value"><Expression><Original>1</Original><IntegerLiteral Value="1"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.SerialNumber</Argument><ExpressionArgument Name="Value"><Expression><Original>[ImportTest].[Serial Number]</Original><Identifier Name="ImportTest.Serial Number"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.Model</Argument><ExpressionArgument Name="Value"><Expression><Original>8</Original><IntegerLiteral Value="8"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.RoomDescription</Argument><ExpressionArgument Name="Value"><Expression><Original>1</Original><IntegerLiteral Value="1"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.Manufacturer</Argument><ExpressionArgument Name="Value"><Expression><Original>1</Original><IntegerLiteral Value="1"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.DeviceName</Argument><ExpressionArgument Name="Value"><Expression><Original>[ImportTest].[Device Name]</Original><Identifier Name="ImportTest.Device Name"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.ImagePackage</Argument><ExpressionArgument Name="Value"><Expression><Original>[ImportTest].[Image Package]</Original><Identifier Name="ImportTest.Image Package"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.NeedsVerification</Argument><ExpressionArgument Name="Value"><Expression><Original>[ImportTest].[Needs Verification]</Original><Identifier Name="ImportTest.Needs Verification"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.NewLocation</Argument><ExpressionArgument Name="Value"><Expression><Original>[ImportTest].[New Location]</Original><Identifier Name="ImportTest.New Location"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.OneOffs</Argument><ExpressionArgument Name="Value"><Expression><Original>[ImportTest].[One Offs]</Original><Identifier Name="ImportTest.One Offs"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.PurchasedDate</Argument><ExpressionArgument Name="Value"><Expression><Original>[ImportTest].[Purchased Date]</Original><Identifier Name="ImportTest.Purchased Date"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.Retired</Argument><ExpressionArgument Name="Value"><Expression><Original>[ImportTest].[Retired]</Original><Identifier Name="ImportTest.Retired"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.Software1</Argument><ExpressionArgument Name="Value"><Expression><Original>67</Original><IntegerLiteral Value="67"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.Software2</Argument><ExpressionArgument Name="Value"><Expression><Original>67</Original><IntegerLiteral Value="67"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.Software3</Argument><ExpressionArgument Name="Value"><Expression><Original>67</Original><IntegerLiteral Value="67"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.Software4</Argument><ExpressionArgument Name="Value"><Expression><Original>67</Original><IntegerLiteral Value="67"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.Software5</Argument><ExpressionArgument Name="Value"><Expression><Original>67</Original><IntegerLiteral Value="67"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.Staff-Student</Argument><ExpressionArgument Name="Value"><Expression><Original>[ImportTest].[Staff-Student]</Original><Identifier Name="ImportTest.Staff-Student"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.Swap</Argument><ExpressionArgument Name="Value"><Expression><Original>[ImportTest].[Swap]</Original><Identifier Name="ImportTest.Swap"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.TagNumber</Argument><ExpressionArgument Name="Value"><Expression><Original>[ImportTest].[Tag Number]</Original><Identifier Name="ImportTest.Tag Number"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.TopUser</Argument><ExpressionArgument Name="Value"><Expression><Original>[ImportTest].[Top User]</Original><Identifier Name="ImportTest.Top User"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.Warranty</Argument><ExpressionArgument Name="Value"><Expression><Original>[ImportTest].[Warranty]</Original><Identifier Name="ImportTest.Warranty"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.Comments</Argument><ExpressionArgument Name="Value"><Expression><Original>"Test"</Original><StringLiteral Value="Test"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.CreatedBy</Argument><ExpressionArgument Name="Value"><Expression><Original>"Test"</Original><StringLiteral Value="Test"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">InventoryList.UpdatedBy</Argument><ExpressionArgument Name="Value"><Expression><Original>""</Original><StringLiteral Value=""/></Expression></ExpressionArgument></Action></Statements></CreateRecord></Statements></If></ConditionalBlock></Statements></ForEachRecord></Statements></DataMacro></DataMacros> 

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

<?xml version="1.0" encoding="UTF-16" standalone="no"?> 
<DataMacros xmlns="http://schemas.microsoft.com/office/accessservices/2010/12/application"><DataMacro Event="AfterUpdate"><Statements><Comment>Macro is stopped to not overload AuditTrail during changes made to initial data.</Comment><Action Name="StopMacro"/><Comment>Save the Old values</Comment><CreateRecord><Data><Reference>AuditTrail</Reference></Data><Statements><Action Name="SetField"><Argument Name="Field">AuditTrail.OldNew</Argument><ExpressionArgument Name="Value"><Expression><Original>"Old"</Original><StringLiteral Value="Old"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.RecordID</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[ID]</Original><Identifier Name="InventoryList.ID"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.Timestamp</Argument><ExpressionArgument Name="Value"><Expression><Original>Now()</Original><FunctionCall Name="Now"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.ChangedBy</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[UpdatedBy]</Original><Identifier Name="InventoryList.UpdatedBy"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.BuildingName</Argument><ExpressionArgument Name="Value"><Expression><Original>[Old].[BuildingName]</Original><Identifier Name="Old.BuildingName"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.RoomDescription</Argument><ExpressionArgument Name="Value"><Expression><Original>[Old].[RoomDescription]</Original><Identifier Name="Old.RoomDescription"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.Manufacturer</Argument><ExpressionArgument Name="Value"><Expression><Original>[Old].[Manufacturer]</Original><Identifier Name="Old.Manufacturer"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.Model</Argument><ExpressionArgument Name="Value"><Expression><Original>[Old].[Model]</Original><Identifier Name="Old.Model"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.DeviceName</Argument><ExpressionArgument Name="Value"><Expression><Original>[Old].[DeviceName]</Original><Identifier Name="Old.DeviceName"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.TopUser</Argument><ExpressionArgument Name="Value"><Expression><Original>[Old].[TopUser]</Original><Identifier Name="Old.TopUser"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.Staff-Student</Argument><ExpressionArgument Name="Value"><Expression><Original>[Old].[Staff-Student]</Original><Identifier Name="Old.Staff-Student"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.SerialNumber</Argument><ExpressionArgument Name="Value"><Expression><Original>[Old].[SerialNumber]</Original><Identifier Name="Old.SerialNumber"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.TagNumber</Argument><ExpressionArgument Name="Value"><Expression><Original>[Old].[TagNumber]</Original><Identifier Name="Old.TagNumber"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.PurchasedDate</Argument><ExpressionArgument Name="Value"><Expression><Original>[Old].[PurchasedDate]</Original><Identifier Name="Old.PurchasedDate"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.Warranty</Argument><ExpressionArgument Name="Value"><Expression><Original>[Old].[Warranty]</Original><Identifier Name="Old.Warranty"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.ImagePackage</Argument><ExpressionArgument Name="Value"><Expression><Original>[Old].[ImagePackage]</Original><Identifier Name="Old.ImagePackage"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.Swap</Argument><ExpressionArgument Name="Value"><Expression><Original>[Old].[Swap]</Original><Identifier Name="Old.Swap"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.NewLocation</Argument><ExpressionArgument Name="Value"><Expression><Original>[Old].[NewLocation]</Original><Identifier Name="Old.NewLocation"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.Retired</Argument><ExpressionArgument Name="Value"><Expression><Original>[Old].[Retired]</Original><Identifier Name="Old.Retired"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.OneOffs</Argument><ExpressionArgument Name="Value"><Expression><Original>[Old].[OneOffs]</Original><Identifier Name="Old.OneOffs"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.Comments</Argument><ExpressionArgument Name="Value"><Expression><Original>[Old].[Comments]</Original><Identifier Name="Old.Comments"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.NeedsVerification</Argument><ExpressionArgument Name="Value"><Expression><Original>[Old].[NeedsVerification]</Original><Identifier Name="Old.NeedsVerification"/></Expression></ExpressionArgument></Action></Statements></CreateRecord><Comment>Save the New values</Comment><CreateRecord><Data><Reference>AuditTrail</Reference></Data><Statements><Action Name="SetField"><Argument Name="Field">AuditTrail.OldNew</Argument><ExpressionArgument Name="Value"><Expression><Original>"New"</Original><StringLiteral Value="New"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.RecordID</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[ID]</Original><Identifier Name="InventoryList.ID"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.Timestamp</Argument><ExpressionArgument Name="Value"><Expression><Original>Now()</Original><FunctionCall Name="Now"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.ChangedBy</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[UpdatedBy]</Original><Identifier Name="InventoryList.UpdatedBy"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.BuildingName</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[BuildingName]</Original><Identifier Name="InventoryList.BuildingName"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.RoomDescription</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[RoomDescription]</Original><Identifier Name="InventoryList.RoomDescription"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.Manufacturer</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[Manufacturer]</Original><Identifier Name="InventoryList.Manufacturer"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.Model</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[Model]</Original><Identifier Name="InventoryList.Model"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.DeviceName</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[DeviceName]</Original><Identifier Name="InventoryList.DeviceName"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.TopUser</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[TopUser]</Original><Identifier Name="InventoryList.TopUser"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.Staff-Student</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[Staff-Student]</Original><Identifier Name="InventoryList.Staff-Student"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.SerialNumber</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[SerialNumber]</Original><Identifier Name="InventoryList.SerialNumber"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.TagNumber</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[TagNumber]</Original><Identifier Name="InventoryList.TagNumber"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.PurchasedDate</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[PurchasedDate]</Original><Identifier Name="InventoryList.PurchasedDate"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.Warranty</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[Warranty]</Original><Identifier Name="InventoryList.Warranty"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.ImagePackage</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[ImagePackage]</Original><Identifier Name="InventoryList.ImagePackage"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.Swap</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[Swap]</Original><Identifier Name="InventoryList.Swap"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.NewLocation</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[NewLocation]</Original><Identifier Name="InventoryList.NewLocation"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.Retired</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[Retired]</Original><Identifier Name="InventoryList.Retired"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.OneOffs</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[OneOffs]</Original><Identifier Name="InventoryList.OneOffs"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.Comments</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[Comments]</Original><Identifier Name="InventoryList.Comments"/></Expression></ExpressionArgument></Action><Action Name="SetField"><Argument Name="Field">AuditTrail.NeedsVerification</Argument><ExpressionArgument Name="Value"><Expression><Original>[InventoryList].[NeedsVerification]</Original><Identifier Name="InventoryList.NeedsVerification"/></Expression></ExpressionArgument></Action></Statements></CreateRecord></Statements></DataMacro></DataMacros> 
+0

Ваш сценарий звучит вполне логично; Я просто помог другому клиенту на другом форуме с одним и тем же сценарием. Давайте сначала рассмотрим более подробные сведения о типах данных в ваших двух таблицах. Можете ли вы перечислить необходимые поля и их типы данных из таблицы Design view для каждой из двух таблиц? Благодарю. –

+0

Для таблицы InventoryList: BuildingName является поиск в другую таблицу SerialNumber является коротким текстом Для ImportTest таблицы: BuildingName является коротким текстом (отсюда и перевод в 1, который является идентификатором для соответствующего здания) SerialNumber - это короткий текст. Извините, что обновил несколько раз ... Я продолжал нажимать enter, не перехватывая несколько раз D: – SetsunaMH

+0

Хорошо, это помогает, но это несовместимо с вашей макро логикой. Ваша макро логика, опубликованная ранее, указывает, что некоторые из полей имеют пробелы в именах, а другие - нет. Для того, чтобы я мог создать точную копию вашей настройки, мне нужна точная схема и логика. Вы можете открыть макрос данных, нажмите CTRL + A, чтобы выделить все, нажмите CTRL + C, чтобы скопировать всю логику в буфер обмена, а затем вставьте ее здесь. (Это будет просто необработанный XML.) Затем я вставляю это в мое макроопределение. Благодарю. –

ответ

1

После проверки пакета веб-приложений Access я определил, в чем были проблемы.В настоящее время у вас есть свойство Default Value, присвоенное каждому полю поиска программного обеспечения (1-5) в таблице InventoryList. Я удалил эти значения по умолчанию для каждого из этих полей. Затем я помещаю некоторые примеры фиктивных данных в связанные таблицы. Ваша кнопка в представлении «Список» в настоящее время настроена на запуск макроса данных ImportMacro2. Когда я запускаю это сейчас, макрос завершается без ошибок, и данные вставляются в InventoryList. Вы не можете использовать N/A в качестве значений по умолчанию, потому что это поля поиска, которые принимают только идентификаторы (числа).

+0

Спасибо, Джефф! – SetsunaMH

+0

Я знаю, что это более старое сообщение, но я хотел расширить то, что я сделал, чтобы добиться того, что мой макрос импорта работает отлично. С каждым полем, которое является поиском другой таблицы, сначала у меня есть макрос Lookup a Record в соответствующей таблице, просматривая «имя» записи, которая соответствует тому, что находится в моей таблице импорта. Он сохраняет идентификатор найденной записи в локальной переменной, которую затем я использую позже, чтобы заполнить правильное поле в новой записи. Тот же макрос также был создан для редактирования существующей записи на основе того, был ли уже установлен серийный номер в базе данных или нет. – SetsunaMH

Смежные вопросы