Доступ к VBA.Поиск данных в наборе записей из других данных, найденных в наборе записей, все из SQL - PullRequest
0 голосов
/ 03 января 2019

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

В этом смысле все нормально.Поля вышеупомянутой таблицы: Имя, Типус, IdProvider, Цена, CodeBar.Единственные два, которые важны для нас, - это Name и CodeBar.

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

Dim Magazine As Database
Dim Verification As Recordset
Dim CodProd As Recordset
Dim n As Integer
Dim way As String
Dim List As String
Dim SQL2 As String
Dim SQL As String
Dim CodProduct As String
Dim NameBarrasDuplicado As String

Set Magazine = CurrentDb

SQL = " SELECT Warehouse.CodeBar FROM Warehouse GROUP BY Warehouse.CodeBar HAVING (((Count(Warehouse.[CodeBar]))>1))"
Set Verification = Magazine.OpenRecordset(SQL, dbOpenDynaset)

If (Verification.RecordCount > 0) Then
    SQL2 = "SELECT Warehouse.Name FROM Warehouse WHERE Warehouse.CodeBar = '" & Verification.Fields(0) & " ' "

    Set CodProd = Magazine.OpenRecordset(SQL2, dbOpenDynaset)
    CodProd.MoveFirst

    Do Until Verification.EOF
          Do Until CodProd.EOF
              CodProduct = CodProd.Fields(0) & ", " & CodProducto & ""
              MsgBox (CodProduct)
              CodProd.MoveNext
          Loop
          CodProd.MoveFirst
          List = List & ", " & Verification.Fields(0)
          Verification.MoveNext
    Loop

    MsgBox ("Warehouse duplicated products are: " & CodProduct & " for these Barcodes : " & List & ".")

Else
    MsgBox ("Everything OK, no duplicated codes found")
End If

End Sub

К сожалению, результат вышеупомянутого алгоритма таков: Result of this algorithm in a MsgBox

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

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

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