2015-01-31 6 views
-1

Код ниже (данный мне) работает, но я не понимаю значения (строка 9). Я продолжаю получать сообщения об ошибках, когда я пытаюсь добавить больше ячеек. Im новой для VBA может кто-то добавить больше полей, так что я могу лучше понять, например, как:Экспорт конкретных ячеек из Excel в MS Access

C5 в Ingredient2 C6 в Ingredient3 C7 в Ingredient L5 в Lot2 L6 в Lot3 L7 в Lot и целый букет Больше.

Значения ниже произвольны только для тестирования. Пожалуйста, лавировать посмотреть на моей электронной таблице электронной таблицы Я использую здесь: https://mega.co.nz/#!2cZ3kKAZ!BL-HJM...1tZewrw-CH-1Dc

Sub Button10_Click() 
    Dim strSQL As String 

    Set appAccess = CreateObject("Access.Application") 

    appAccess.Visible = False 

    strSQL = "INSERT INTO [Finished Batches] ([Production Date],[Lot_Number],[Ingredient1],[Amount1]) " & _ 
      "VALUES (#" & Range("C5") & "#,'" & Range("D5") & "','" & Range("F23") & _ 
      "'," & Range("G23") & ")" 

    With appAccess 
    .OpenCurrentDatabase ("C:\users\jay neuh\desktop\database\ss database.mdb") 
    .DoCmd.RunSQL strSQL, dbFailOnError 
    .CloseCurrentDatabase 
    End With 

    Set appAccess = Nothing 
End Sub 

Спасибо за любую помощь

+0

Какое полное сообщение об ошибке вы получаете при запуске этого кода? – HansUp

ответ

0

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

An команды INSERT выглядит следующим образом:

INSERT INTO [my_table_name] ([my_string_column],[my_number_column],[my_date_column]) 
VALUES ('my text value', 42, #2015-01-31#) 

замечает несколько вещей:

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

Вы не упомянули, какие ошибки вы получаете, но если в вашей базе данных Access в поле [Lot_Number] на самом деле числового типа, может быть проблема с оберткой в ​​одинарных квотах, как в вашем примере.

Вы должны проверить Introduction to Access SQL

EDIT: Вы должны всегда использовать

Debug.Print strSQL 

, чтобы просмотреть SQL заявление, вы будете более вероятно, чтобы определить, если у вас есть ошибка синтаксиса где-то в коде, как недостающая запятая, одинарная кавычка или скобка.

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