Операция удаления строки в Microsoft Access - PullRequest
0 голосов
/ 01 апреля 2020

Картинка - это магазин запросов, над которым я хочу работать. 1. Я хочу удалить любую строку с пустым полем W вместе со всеми другими строками, которые имеют одно и то же поле product_code. например, на рисунке 103346 имеет пустое поле W, поэтому любая строка с 103346 должна быть удалена (даже если ее поле W не пустое).

Я хочу иметь возможность экспортировать новый запрос в Excel (если это возможно).

Я не против, если это через SQL или код VBA.

I Я новичок в MS Access

enter image description here

Ответы [ 3 ]

1 голос
/ 01 апреля 2020

Вы можете сделать это с помощью EXISTS:

DELETE FROM tablename AS t
WHERE EXISTS (
  SELECT 1 FROM tablename
  WHERE PRODUCT_CODE = t.PRODUCT_CODE AND W IS NULL
)
1 голос
/ 01 апреля 2020

Один из способов сделать это с помощью SQL:

  1. Создать запрос и добавить таблицу (я назвал мой ProductData);
  2. Выберите поля, которые вы хотите в выводе;
  3. В поле критерия для PRODUCT_CODE введите:

    Not In (ВЫБЕРИТЕ код продукта FROM ProductData WHERE W NULL)

SQL должно выглядеть так:

SELECT ProductData.PRODUCT_CODE, ProductData.PURE_QP1, ProductData.W
FROM ProductData
WHERE ProductData.PRODUCT_CODE NOT IN (SELECT product_code FROM ProductData WHERE W IS NULL);

И для экспорта в Excel код VBA будет выглядеть следующим образом:

    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "Query3", "J:\downloads\test.xlsx", True

Где Query3 - имя запроса что вы создали.

С уважением,

0 голосов
/ 02 апреля 2020

Чтобы удалить все пустые записи в таблице Microsoft Access. Вы можете использовать:

DoCmd.RunSQL "DELETE * FROM TableName WHERE FieldName='';"

Там больше команд удаления по ссылке здесь

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