Добавление данных в базу через InputBox - VB
Формулировка задачи:
Привет всем! Не могу понять проблему которая у меня получилась. И так для начала код:
И так, при нажатии на кнопку появляется InputBox с предложением ввести данные которые попадают в переменную "c$", далее переменная "c$" сохраняется в таблицу Data в поле "Name", после появляется второй InputBox с предложением ввести данные которые попадают в переменную "f$", далее Data2 должна найти совпадение с только что добавленной записью в базу и отредактировать ее на предмет добавления нового значения в поле Name2, но она создает новую строку и получается, 2 добавленные разные записи в первой нету значения Name2, а во второй значения Name.
Как исправить ?
P.S. Подозреваю, что тут ошибка "Data2.RecordSource = "select * from [Data] Код=" & Data2.Recordset.Fields("Код").Value", но не могу понять как заставить выбрать предыдущую запись и вызвать ее для редактирования, чтобы добавить поле "Name2".Решение задачи: «Добавление данных в базу через InputBox»
textual
Листинг программы
'::: Модуль:
Global er As rdoError
Global cn As New rdoConnection
Global qy As New rdoQuery
Global rs As rdoResultset
Global col As rdoColumn
Global SQL As String
Public Sub usrConnect()
cn.CursorDriver = rdUseOdbc
cn.Connect = "uid=****;" & _ ' ËîãèГ*
"pwd=****;" & _ ' ГЏГ*ðîëü
"DSN=****" ' èìÿ èñòî÷Г*ГЁГЄГ* Г¤Г*Г*Г*ûõ ODBC
cn.EstablishConnection (rdoNoPrompt)
End Sub
'::: Форма
Private Sub Command1_Click()
usrConnect
Label1.Caption = "ÑîåäèГ*ГҐГ*ГЁГҐ âûïîëГ*ГҐГ*Г® ГіГ±ГЇГҐГёГ*Г®!"
End Sub
Private Sub Command2_Click()
Dim Tmp As Variant
'--- ÑîçäГ*Г*ГЁГҐ ГІГ*áëèöû
Label1.Caption = "ÑîçäГ*ГҐГ¬ ГІГ*áëèöó BOB"
SQL = "CREATE TABLE bob (a1 Char(10), a2 Char(10))"
cn.Execute SQL
Label1.Caption = "Ãîòîâî!"
'--- Г‡Г*Г*îñèì ГЁГ*ôîðìГ*Г¶ГЁГѕ Гў ГІГ*áëèöó...
Label1.Caption = "Г‡Г*Г*îñèì ГЁГ*ôîðìГ*Г¶ГЁГѕ..."
Form1.Refresh
SqlHdr$ = "INSERT into BOB VALUES "
With Me.ProgressBar1
.Min = 1
.Max = 100
End With
For i% = 1 To 100
SQL = SqlHdr & "(" & Str$(i%) & "," & Str$(i% ^ 2) & ")"
cn.Execute SQL
Me.ProgressBar1.Value = i%
Next i%
Label1.Caption = "Ãîòîâî!"
End Sub
Private Sub Command3_Click()
Label1.Caption = "ÂûãðóæГ*ГҐГ¬ Г¤Г*Г*Г*ûå..."
Me.Refresh
SQL = "SELECT * From bob Where mid(a1,1,1)='1' order by a2 desc"
With qy
.Name = "TestSelect"
.SQL = SQL
.RowsetSize = 100
Set .ActiveConnection = cn
End With
Set rs = qy.OpenResultset(rdOpenDynamic)
rs.MoveLast
nn% = rs.RowCount
rs.MoveFirst
With Me
.MSFlexGrid1.Clear
.MSFlexGrid1.Row = 0
.MSFlexGrid1.col = 0
.MSFlexGrid1.Text = "A1"
.MSFlexGrid1.Row = 0
.MSFlexGrid1.col = 1
.MSFlexGrid1.Text = "A2"
For ii% = 1 To nn%
.MSFlexGrid1.Rows = .MSFlexGrid1.Rows + 1
.MSFlexGrid1.Row = ii%
.MSFlexGrid1.col = 0
.MSFlexGrid1.Text = rs!a1
.MSFlexGrid1.col = 1
.MSFlexGrid1.Text = rs!a2
rs.MoveNext
Next ii%
End With
rs.Close
qy.Close
Set qy = Nothing
Label1.Caption = "Ãîòîâî!"
Me.Refresh
Me.MSFlexGrid1.Visible = True
Me.MSFlexGrid1.SetFocus
End Sub
Private Sub Command4_Click()
On Error GoTo Drop_Err
Me.MSFlexGrid1.Clear
Me.MSFlexGrid1.Visible = False
Label1.Caption = "ÓäГ*ëÿåì ГІГ*áëèó BOB..."
Me.Refresh
SQL = "Drop Table BOB"
cn.Execute SQL
Label1.Caption = "Ãîòîâî!"
Me.Refresh
Exit Sub
Drop_Err:
Txt$ = ""
For Each er In rdoErrors
Txt$ = Txt$ + " " + er.Description
Next er
Label1.Caption = Txt$
Label1.ForeColor = QBColor(12)
Me.Refresh
End Sub
Private Sub Command5_Click()
cn.Close
End
End Sub