Добавление данных в базу через InputBox - VB
Формулировка задачи:
Привет всем! Не могу понять проблему которая у меня получилась. И так для начала код:
И так, при нажатии на кнопку появляется InputBox с предложением ввести данные которые попадают в переменную "c$", далее переменная "c$" сохраняется в таблицу Data в поле "Name", после появляется второй InputBox с предложением ввести данные которые попадают в переменную "f$", далее Data2 должна найти совпадение с только что добавленной записью в базу и отредактировать ее на предмет добавления нового значения в поле Name2, но она создает новую строку и получается, 2 добавленные разные записи в первой нету значения Name2, а во второй значения Name.
Листинг программы
- c$ = InputBox("Введите данные", "Добавление")
- If Trim$(c$) = "" Then Exit Sub
- Data2.RecordSource = "select * from [Data]": Data2.Refresh
- c$ = Left$(c$, Data2.Recordset.Fields("Name").Size)
- Data2.Recordset.AddNew: Data2.Recordset.Fields("Name").Value = c$: Data2.Recordset.Update
- f$ = InputBox("Введите данные", "Добавление")
- If Trim$(f$) = "" Then Exit Sub
- Data2.RecordSource = "select * from [Data] Код=" & Data2.Recordset.Fields("Код").Value
- f$ = Left$(f$, Data2.Recordset.Fields("Name2").Size)
- Data2.Recordset.AddNew: Data2.Recordset.Fields("Name2").Value = f$: Data2.Recordset.Update
- Data2.Recordset.MoveLast
Как исправить ?
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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д