Добавление данных в базу через 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5