Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Обновление БД


Автор: Nerviwki 21.4.2011, 14:27
Всем привет!!!  хотел написать простенький код в Access чтобы обновить поле в таблице базы данных. Вот собственно сам код:

Sub qweer()
Dim con As New ADODB.Connection
Dim comm As New ADODB.Command
Dim strSQL As String
Set con = CurrentProject.Connection
Set comm = New Command
With comm
    .ActiveConnection = con
    .CommandText = "UPDATE  люди Set поле1=глеб WHERE поле2='мартынов';"
    .CommandType = adCmdText
    .Execute
End With


End Sub



В ошибке пишет что отсутсвует значение для одного или нескольких требуемых параметров. 


не подскажите что это за параметры и зачем они нужны?

Автор: Nerviwki 25.4.2011, 05:24
Option Base 1
Sub qwerty()
Dim klyuch As Integer 'контрольный ключ
Dim s As Integer
Dim ArProizv(23) As Integer
Dim prov
Dim ArVeca(23) As Integer ' задаем массив весовых коэффициентов
Dim a As String, k As String
Dim i As Integer
Dim ArKorDo(20) As Variant 'задаем массив для элементов начального корсчета
Dim ArBik(9) As Variant ' задаем массив для элементов бика
Dim ArKorBikBegin(23) As Variant
UserForm1.TextBox1.Value = "40102810000000010001"
a = UserForm1.TextBox1.Value ' присваеваем стороковой переменной номер начального корсчета

UserForm1.TextBox3.Value = "040305000" ' присваиваем строковой переменной номер бика
k = UserForm1.TextBox3.Value
 
 ' заполняем массив корсчета элементами
 For i = 1 To 20
    ArKorDo(i) = Val(Right(Left(a, i), 1))
 Next i
 
 ' заполняем массив бика элементами
 For i = 1 To 9
    ArBik(i) = Val(Right(Left(k, i), 1))
 Next i
 
ArBik(4) = 0 ' добавляем разряд бику

 ' заполняем кор-бик массив элементами
 For i = 1 To 3
    ArKorBikBegin(i) = ArBik(i + 3)
 Next i
 For i = 4 To 23
    ArKorBikBegin(i) = ArKorDo(i - 3)
 Next i
 
'Worksheets("лист1").Activate
'For i = 1 To 23
'Worksheets("лист1").Cells(i, 1).Value = ArKorBikBegin(i)
'Next i

 ' заполняем массив весов
 ArVeca(1) = 7
 ArVeca(2) = 1
 ArVeca(3) = 3
 ArVeca(4) = 7
 ArVeca(5) = 1
 ArVeca(6) = 3
 ArVeca(7) = 7
 ArVeca(8) = 1
 ArVeca(9) = 3
 ArVeca(10) = 7
 ArVeca(11) = 1
 ArVeca(12) = 3
 ArVeca(13) = 7
 ArVeca(14) = 1
 ArVeca(15) = 3
 ArVeca(16) = 7
 ArVeca(17) = 1
 ArVeca(18) = 3
 ArVeca(19) = 7
 ArVeca(20) = 1
 ArVeca(21) = 3
 ArVeca(22) = 7
 ArVeca(23) = 1
 
 'ищем произведения весовых коэффицентов на элементы массива кор-бика и берем только второй разряд от каждого произведения + ищем их сумму и берем только младший разряд
  s = 0
  For i = 1 To 23
    ArProizv(i) = (ArKorBikBegin(i) * ArVeca(i)) Mod 10
    s = s + ArProizv(i)
 Next i
 
 'расчет контрольного ключа
 klyuch = ((s Mod 10) * 3) Mod 10
 
 ' установка ключа
 ArKorDo(9) = klyuch
 
 ' ВВОД кор счета с ключем в текстовое поля 2
 For i = 1 To 20
    UserForm1.TextBox2.Value = UserForm1.TextBox2.Value + CStr(ArKorDo(i))
 Next i
 UserForm1.Show

Автор: shanemac51 25.4.2011, 08:15
Цитата(Nerviwki @  21.4.2011,  14:27 Найти цитируемый пост)
  .CommandText = "UPDATE  люди Set поле1=глеб WHERE поле2='мартынов';"


как минимум
Код

  .CommandText = "UPDATE  люди Set поле1='глеб' WHERE поле2='мартынов';"


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)