Я создал пользовательскую форму excel для сбора данных. Я подключил его к Access для сброса данных. Однако я хочу обновлять Access каждый раз, когда пользователь нажимает кнопку отправки.Как проверить запись с помощью идентификатора, тогда если запись существует обновление, если не добавить новую запись
В принципе мне нужен оператор Select, чтобы определить существование идентификатора, а затем, если он не существует, мне нужно использовать INSERT для добавления новой строки. Я очень новичок в любом SQL, поэтому любая помощь будет отличной.
Вот код, который у меня есть сейчас, мне нужно адаптировать его к ADO.
Sub Update()
Dim cnn As ADODB.Connection
Dim MyConn
Dim rst As ADODB.Recordset
Dim StrSql As String
Set cnn = New ADODB.Connection
MyConn = ThisWorkbook.Path & Application.PathSeparator & TARGET_DB
With cnn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.Open MyConn
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseServer
rst.Open Source:="Foam", ActiveConnection:=cnn, _
CursorType:=adOpenDynamic, LockType:=adLockOptimistic, _
Options:=adCmdTable
StrSql = "SELECT * FROM Foam WHERE FoamID = " & txtMyID
Set rst = CurrentDb.OpenRecordset(StrSql, dbOpenDynaset)
If (rst.RecordCount = 0) Then
DoCmd.RunSQL "INSERT INTO Foam (ID, Part, Job, Emp, Weight, Oven) VALUES " & _
"(" & txtID & ", '" & txtField1 & "', '" & txtField2 & "', '" & txtField3 & "', '" & txtField4 & "', '" & txtField5 & "');"
End If
' Close the connection
rst.Close
cnn.Close
Set rst = Nothing
Set cnn = Nothing
End With
End Sub
Должны ли быть значительные изменения для excel 2013? Я получаю "ошибка 3265 Элемент не может быть найден в коллекции, соответствующей запрашиваемому имени или порядку." The! Some + text = "Hello World" отключает эту ошибку – Crabara
'some_text' - это имя поля в моей таблице tblFoo. Замените имя своего поля. Если это имя включает пробел, пунктуацию или любые символы, отличные от букв, цифр или '_', заключите имя поля в квадратные скобки как это ...'! [Ваше поле] ' – HansUp
Спасибо вам большое! Я действительно обновил свою базу данных доступа от пользовательской формы excel! Теперь мне просто нужно заполнить обновления в БД из текстовых полей, а не статических значений. Но ты меня очень близко! Благодаря! – Crabara