Добавление данных в базу через InputBox - VB

Узнай цену своей работы

Формулировка задачи:

Привет всем! Не могу понять проблему которая у меня получилась. И так для начала код:
Листинг программы
  1. c$ = InputBox("Введите данные", "Добавление")
  2. If Trim$(c$) = "" Then Exit Sub
  3. Data2.RecordSource = "select * from [Data]": Data2.Refresh
  4. c$ = Left$(c$, Data2.Recordset.Fields("Name").Size)
  5. Data2.Recordset.AddNew: Data2.Recordset.Fields("Name").Value = c$: Data2.Recordset.Update
  6. f$ = InputBox("Введите данные", "Добавление")
  7. If Trim$(f$) = "" Then Exit Sub
  8. Data2.RecordSource = "select * from [Data] Код=" & Data2.Recordset.Fields("Код").Value
  9. f$ = Left$(f$, Data2.Recordset.Fields("Name2").Size)
  10. Data2.Recordset.AddNew: Data2.Recordset.Fields("Name2").Value = f$: Data2.Recordset.Update
  11. Data2.Recordset.MoveLast
И так, при нажатии на кнопку появляется 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
Листинг программы
  1. '::: Модуль:
  2.  
  3. Global er  As rdoError
  4. Global cn  As New rdoConnection
  5. Global qy  As New rdoQuery
  6. Global rs  As rdoResultset
  7. Global col As rdoColumn
  8. Global SQL As String
  9.  
  10. Public Sub usrConnect()
  11.  
  12.        cn.CursorDriver = rdUseOdbc
  13.        
  14.        cn.Connect = "uid=****;" & _  ' ËîãèГ*
  15.                          "pwd=****;" & _  ' ГЏГ*ðîëü
  16.                          "DSN=****"       ' èìÿ èñòî÷Г*ГЁГЄГ* Г¤Г*Г*Г*ûõ ODBC
  17.  
  18.  
  19.        cn.EstablishConnection (rdoNoPrompt)
  20.  
  21. End Sub
  22.  
  23. '::: Форма
  24.  
  25. Private Sub Command1_Click()
  26.  
  27.         usrConnect
  28.        
  29.         Label1.Caption = "ÑîåäèГ*ГҐГ*ГЁГҐ âûïîëГ*ГҐГ*Г® ГіГ±ГЇГҐГёГ*Г®!"
  30.        
  31. End Sub
  32.  
  33. Private Sub Command2_Click()
  34. Dim Tmp As Variant
  35.        
  36.        '--- ÑîçäГ*Г*ГЁГҐ ГІГ*áëèöû
  37.      
  38.        Label1.Caption = "ÑîçäГ*ГҐГ¬ ГІГ*áëèöó BOB"
  39.        
  40.        SQL = "CREATE TABLE bob (a1 Char(10), a2 Char(10))"
  41.        
  42.        cn.Execute SQL
  43.            
  44.        Label1.Caption = "Ãîòîâî!"
  45.        
  46.        '--- Г‡Г*Г*îñèì ГЁГ*ôîðìГ*öèþ Гў ГІГ*áëèöó...
  47.      
  48.        Label1.Caption = "Г‡Г*Г*îñèì ГЁГ*ôîðìГ*öèþ..."
  49.        
  50.        Form1.Refresh
  51.        
  52.        SqlHdr$ = "INSERT into BOB VALUES "
  53.        
  54.        With Me.ProgressBar1
  55.             .Min = 1
  56.             .Max = 100
  57.        End With
  58.        
  59.        For i% = 1 To 100
  60.        
  61.            SQL = SqlHdr & "(" & Str$(i%) & "," & Str$(i% ^ 2) & ")"
  62.        
  63.            cn.Execute SQL
  64.        
  65.            Me.ProgressBar1.Value = i%
  66.        
  67.        Next i%
  68.        
  69.        Label1.Caption = "Ãîòîâî!"
  70.        
  71. End Sub
  72.  
  73. Private Sub Command3_Click()
  74.  
  75.         Label1.Caption = "ÂûãðóæГ*ГҐГ¬ Г¤Г*Г*Г*ûå..."
  76.         Me.Refresh
  77.        
  78.         SQL = "SELECT * From bob Where mid(a1,1,1)='1' order by a2 desc"
  79.        
  80.         With qy
  81.              .Name = "TestSelect"
  82.              .SQL = SQL
  83.              .RowsetSize = 100
  84.              Set .ActiveConnection = cn
  85.         End With
  86.        
  87.         Set rs = qy.OpenResultset(rdOpenDynamic)
  88.        
  89.         rs.MoveLast
  90.        
  91.         nn% = rs.RowCount
  92.        
  93.         rs.MoveFirst
  94.        
  95.         With Me
  96.        
  97.              .MSFlexGrid1.Clear
  98.              .MSFlexGrid1.Row = 0
  99.              .MSFlexGrid1.col = 0
  100.              .MSFlexGrid1.Text = "A1"
  101.        
  102.              .MSFlexGrid1.Row = 0
  103.              .MSFlexGrid1.col = 1
  104.              .MSFlexGrid1.Text = "A2"
  105.        
  106.              For ii% = 1 To nn%
  107.                    
  108.                  .MSFlexGrid1.Rows = .MSFlexGrid1.Rows + 1
  109.          
  110.                  .MSFlexGrid1.Row = ii%
  111.                  .MSFlexGrid1.col = 0
  112.            
  113.                  .MSFlexGrid1.Text = rs!a1
  114.            
  115.                  .MSFlexGrid1.col = 1
  116.                  .MSFlexGrid1.Text = rs!a2
  117.            
  118.                  rs.MoveNext
  119.            
  120.              Next ii%
  121.        
  122.         End With
  123.        
  124.         rs.Close
  125.        
  126.         qy.Close
  127.        
  128.         Set qy = Nothing
  129.        
  130.         Label1.Caption = "Ãîòîâî!"
  131.         Me.Refresh
  132.        
  133.         Me.MSFlexGrid1.Visible = True
  134.        
  135.         Me.MSFlexGrid1.SetFocus
  136.  
  137. End Sub
  138.  
  139. Private Sub Command4_Click()
  140.  
  141.         On Error GoTo Drop_Err
  142.                
  143.         Me.MSFlexGrid1.Clear
  144.         Me.MSFlexGrid1.Visible = False
  145.  
  146.         Label1.Caption = "ÓäГ*ëÿåì ГІГ*áëèó BOB..."
  147.         Me.Refresh
  148.                
  149.         SQL = "Drop Table BOB"
  150.         cn.Execute SQL
  151.        
  152.         Label1.Caption = "Ãîòîâî!"
  153.         Me.Refresh
  154.  
  155.         Exit Sub
  156.        
  157. Drop_Err:
  158.        
  159.         Txt$ = ""
  160.        
  161.         For Each er In rdoErrors
  162.             Txt$ = Txt$ + " " + er.Description
  163.         Next er
  164.  
  165.         Label1.Caption = Txt$
  166.         Label1.ForeColor = QBColor(12)
  167.         Me.Refresh
  168.  
  169. End Sub
  170.  
  171. Private Sub Command5_Click()
  172.         cn.Close
  173.         End
  174. End Sub

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут