Хотя, безусловно, можно использовать VBA для чтения заголовков столбцов на листе Excel путем взаимодействия с Excel с использованием объектной модели ActiveX, более простой подход может быть следующим:
Импортируйте электронную таблицу Excel во временную таблицу в MS Access, а затем используйте VBA для перебора полей во вновь созданной таблице, проверяя наличие или отсутствие набора полей, который требуется для ваших запросов.
Чтобы проверить набор полей, присутствующих во временной таблице, вы можете использовать такую функцию, как:
Function ValidateFields(strTbl As String, arrReq As Variant) As Boolean
Dim fld
Dim fldTmp As Field
On Error GoTo err
For Each fld In arrReq
Set fldTmp = CurrentDb.TableDefs(strTbl).Fields(fld)
Next fld
ValidateFields = True
err:
Exit Function
End Function
Поставляется с именем временной таблицы и массивом полей, которые вам необходимы для присутствия в такой таблице, вышеупомянутая функция вернет True
, если присутствуют все поля в массиве, иначе False
, если любое поле в массиве отсутствует в таблице, например:
?ValidateFields("TempTable", Array("Field1", "Field2", "Field3"))
False
Если ряд обязательных полей отсутствует, вы можете уведомить об этом пользователя соответствующим образом; иначе, если все обязательные поля присутствуют, вы можете вставить данные из обязательных полей в таблицу, используемую вашими запросами, используя простой запрос на добавление.