Добавление данных в базу через 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д