Im работает в Access 2010 с базой данных JET Database, вставляя значения в эту базу данных.База данных Access не принимает вставки с определенным значением с помощью VBA
Это не вставляет в базу данных (не сообщ ошибки не возвращается)
insert into [PROJECT RESOURCE UPDATE HISTORY] ([Current Date], [Project Auto No Ref], [Resource ID Ref], [Allocation Notes], [Allocation Role],[Usage Percentage - Oct], [Usage Percentage - Nov], [Usage Percentage - Dec], [Usage Percentage - Jan], [Usage Percentage - Feb], [Usage Percentage - Mar], [Usage Percentage - Apr], [Usage Percentage - May],[Usage Percentage - Jun], [Usage Percentage - Jul], [Usage Percentage - Aug], [Usage Percentage - Sep]) values (#2/13/2017 11:01:41 AM#, 540,11,'','Project Manager',0,1,1,1,1,1,1,0,0,0,0,0)
Но это делает
insert into [PROJECT RESOURCE UPDATE HISTORY] ([Current Date], [Project Auto No Ref], [Resource ID Ref], [Allocation Notes], [Allocation Role],[Usage Percentage - Oct], [Usage Percentage - Nov], [Usage Percentage - Dec], [Usage Percentage - Jan], [Usage Percentage - Feb], [Usage Percentage - Mar], [Usage Percentage - Apr], [Usage Percentage - May],[Usage Percentage - Jun], [Usage Percentage - Jul], [Usage Percentage - Aug], [Usage Percentage - Sep]) values (#2/13/2017 11:04:38 AM#, 540,821,'','DevOps',0,0.13,0.13,0.13,0.13,0.13,0.13,0,0,0,0,0)
и вот фрагмент кода, который делает фактическое вставив
sqlStatement2 = "insert into [PROJECT RESOURCE UPDATE HISTORY] (" & _ "[Current Date], [Project Auto No Ref], [Resource ID Ref], [Allocation Notes], [Allocation Role]," & _ "[Usage Percentage - Oct], [Usage Percentage - Nov], [Usage Percentage - Dec], [Usage Percentage - Jan]," & _ "[Usage Percentage - Feb], [Usage Percentage - Mar], [Usage Percentage - Apr], [Usage Percentage - May]," & _ "[Usage Percentage - Jun], [Usage Percentage - Jul], [Usage Percentage - Aug], [Usage Percentage - Sep] " & _ ") values (" & _ "#" & Now() & "#," & _ rst![Current Project Ref No] & "," & rst![Current Resource Person ID] & ",'" & rst![Current Allocation Notes] & _ "','" & rst![Current Allocation Role] & "'," & CDbl(oct) & "," & CDbl(nov) & "," & CDbl(dec) & _ "," & CDbl(jan) & "," & CDbl(feb) & "," & CDbl(mar) & "," & CDbl(apr) & _ "," & CDbl(may) & "," & CDbl(jun) & "," & CDbl(jul) & "," & CDbl(aug) & _ "," & CDbl(sep) & ");" MsgBox (sqlStatement2) CurrentDb.Execute (sqlStatement2) rst.MoveNext
Я считаю, что проблема связана с вставкой 1 в базу данных в первом примере. База данных не сообщает об ошибке, и строка не отображается. Если изменить значение от 1 до 0.99, он вставляет штраф и отображается в базе данных. То, что я пытался и наблюдение:
Я также попытались вручную преобразованиями 1 в два раз с помощью функции CDbl(), прежде чем я сделать заявление вставки в моей УВЕ.
Если я нарушу код после первой вставки со значением 1, идентификатор строки переходит к следующему значению, как строка была вставлена
Где еще можно посмотреть?
Бьюсь об заклад, если вы жестко закодированы 1.0 в качестве значения, это сработает. Каковы ваши региональные настройки, интересно, интерпретирует ли он 1,1,1 как число? – Minty
* «В базе данных не сообщается об ошибке» * - Попробуйте использовать 'CurrentDb.Execute sqlStatement2, dbFailOnError' и посмотрите, ведет ли он себя иначе. –
@gordThompson С dbFailOnError я обнаружил, что это была ошибка проверки в самой таблице. Благодаря! – Tino