Копирование записи в VBA - PullRequest
1 голос
/ 12 июня 2009

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

Теперь у нас есть возможность взять этот мешок весом 2000 фунтов и превратить его в 80 мешков весом 20 фунтов. Только 40 мешков по 20 фунтов могут уместиться на одном поддоне, взяв теперь один поддон L20444 и получив два поддона с номером L20444. Это вызывает проблему с запасами, поскольку номеру L20444 можно присвоить только одно складское место, а не два.

Так что, мои начальники, что бы создать число, которое будет почти таким же, но достаточно разным, чтобы разместить второй поддон на складе. Второй поддон теперь будет L20444B. Он по-прежнему будет иметь все те же проверенные номера и является «копией» оригинального L20444.

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

Так может ли VBA скопировать запись, переименовать ее, а затем сохранить ее в той же базе данных, что и новая запись?

Любая помощь будет оценена, спасибо.

Ответы [ 2 ]

1 голос
/ 12 июня 2009

Если я правильно вас читаю, звучит так, будто вы хотите, чтобы оператор SQL создал новую запись.

Вы используете Microsoft Access? Я бы рекомендовал сначала создать запрос, который делает это в редакторе запросов. Это будет запрос на добавление, примерно такой:

INSERT INTO TableA ( ID,col1, col2 )
SELECT [ID] & "B" AS NewName,col1, col2
FROM TableA
WHERE (([ID]="L20444"));

Сначала проверьте это, чтобы убедиться, что он делает то, что вам нужно, и превратите «L20444» в параметр ([OldID] или что-то в этом роде). Затем добавьте некоторый код в ваш скрипт VBA, который выполняет этот запрос. Он должен появиться, спрашивая у вас OldID при запуске.

Затем вам нужно научиться выполнять параметризованные запросы из VBA. Примерно так:

Set qdf1 = CurrentDb.QueryDefs("myQuery")
qdf1.Parameters("OldID") = theOldID
qdf1.Execute

Не проверено, ищите справку VBA для QueryDefs, если мой синтаксис не совсем верен.

1 голос
/ 12 июня 2009

Почему бы вам не создать новую таблицу, которая отслеживает расположение двух поддонов (и новые номера), которая связывает (с внешним ключом) одну запись для запаса в оригинале Таблица?

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

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