首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vb程序报错,不知咋改,显示VB6.0中出现不支持所要求的数据绑定类型,该怎么处理

2012-04-28 
vb程序报错,不知咋改,显示VB6.0中出现不支持所要求的数据绑定类型VB codeDim Mydb As New ADODB.Recordset

vb程序报错,不知咋改,显示VB6.0中出现不支持所要求的数据绑定类型

VB code
Dim Mydb As New ADODB.Recordset 
Dim Mydb1 As New ADODB.Recordset
Dim Mydb2 As New ADODB.Recordset
Dim Count1 As New ADODB.Recordset
Dim Str_text As String
Private Sub cmd_add_Click()
            On Error Resume Next
            Dim A, B
           
            B = 1
            Set Count1 = ExeCutesql("select * from 收入", Str_text)
            Count1.MoveLast
            B = Count1.Fields(7) + 1
            A = MsgBox("是否添加前记录?", vbYesNo + 32, "添加记录")
            If A = vbYes Then
              If txt_intake.Text = "" Then
                  MsgBox "请填写来源!", vbOKOnly + 32, "注意"
                  txt_intake.SetFocus
              Else
                  ExeCutesql "INSERT INTO 收入 VALUES('" & Format(DTPicker1.Value, "yyyy-mm-dd") & "','" _
                  & Combo1.Text & "'," & txt_money.Text & ",'" & Combo2.Text & "','" & txt_intake.Text _
                  & "','" & Combo3.Text & "','" & txt_mome.Text & "'," & B & ")", Str_text
                  MsgBox "数据已经保存!", vbOKOnly + 64, "成功"
                  Call Xiangmu
                  Call Db
              End If
            End If
           
End Sub
Private Sub cmd_close_Click()
            frm_main.Show
            Unload Me
End Sub
Private Sub cmd_del_Click()
            On Error Resume Next
            Dim A
           
            A = MsgBox("是否删除当前记录?", vbYesNo + 32 + 256, "添加记录")
            If A = vbYes Then
              'Mydb.UpdateBatch
              ExeCutesql "DELETE from 收入 where key=" & txt_note.Text & "", Str_text
              Call Db
              Set Mydb = ExeCutesql("select * from  收入 ", Str_text)
              Set MSHFlexGrid1.DataSource = Mydb
            End If
End Sub
Private Sub cmd_edit_Click()
            'On Error Resume Next
            Dim A
           
            A = MsgBox("是否修改当前记录?", vbYesNo + 32, "添加记录")
            If A = vbYes Then
              ExeCutesql "Update 收入 Set 日期 = '" & Format(DTPicker1.Value, "yyyy-mm-dd") & "',方式='" & Combo1.Text & "',金额=" & txt_money.Text & ", 来源='" & txt_intake.Text & "',人员='" & Combo3.Text & "',备注='" & txt_mome.Text & "' Where key = " & txt_note.Text & "  ", Str_text


              Call Db
              MsgBox "数据修改成功!", vbOKOnly + 64, "成功"
            End If
            'MsgBox "Update 收入 Set 日期 = '" & DTPicker1.Value & "',方式='" & Combo1.Text & "',金额=" & txt_money.Text & ", 来源='" & txt_intake.Text & "',人员='" & Combo3.Text & "',备注='" & txt_mome.Text & "' Where key = '" & txt_note.Text & " '"
             
End Sub
Private Sub Combo2_Change()
            Call Db1
End Sub
Private Sub Combo3_Change()
            Call Db2
End Sub

Private Sub Command1_Click()
            Call Db
End Sub

Private Sub Form_Load()
            Call Db
            Call Db1
            Call Db2
            DTPicker1.Value = Date
            'Combo3.Locked = True
            'Combo1.Locked = True

End Sub

Public Function Db()
  Set Mydb = ExeCutesql("select * from 收入 order by key ", Str_text)
  Set MSHFlexGrid1.DataSource = MydbEnd Function

光标提示在红色的部分,不知道咋改

[解决办法]
为何要绑定 ? Rs 先读好 再循环放进MsHflexGrid 它与DataGrid的观念有点不同

VB code
Private Sub ShowAllMsf()   Trec = Rs.RecordCount   MSHFlexGrid1.Rows = Trec + 1   If Trec > 0 Then      MSHFlexGrid1.Visible = False      Datapos = 0      Rs.MoveFirst      Do         ShowMsFlex         Rs.MoveNext         Datapos = Datapos + 1      Loop Until Rs.EOF      MSHFlexGrid1.Visible = True      Rs.MoveFirst: Datapos = 0: OldPos = Datapos      MSHFlexGrid1.Row = 1: MSHFlexGrid1.Col = 0   End IfEnd SubPrivate Sub ShowMsFlex()   MSHFlexGrid1.Row = Datapos + 1 'updrow   For I = 0 To TCols - 1      MSHFlexGrid1.Col = I      MSHFlexGrid1.CellAlignment = 1 '靠左      MSHFlexGrid1.Text = IIf(Trim(Rs.Fields(I)) <> "", Rs.Fields(I), "")   Next IEnd Sub
[解决办法]
Set MSHFlexGrid1.DataSource = MydbEnd Function
应该是Set MSHFlexGrid1.DataSource = Mydb End Function这样



[解决办法]
怎么没看见connction?
rs不用excute 改成open试试
RS.Open sSQL, dfwConn, adOpenForwardOnly, adLockReadOnly
Set MSHFlexGrid1.DataSource = RS
[解决办法]
对应rs 换成你的记录集 再在属性cols更改你的数值
rs.MoveFirst
 ' rs.MoveFirst
Do While Not rs.EOF
MSFlexGrid2.Rows = i + 1
MSFlexGrid2.row = i
MSFlexGrid2.col = 0
MSFlexGrid2.Text = i - 1

'For j = 1 To 10
For j = 1 To 10

MSFlexGrid2.col = j
If rs.Fields(j - 1) <> "" Then
MSFlexGrid2.Text = rs.Fields(j - 1).Value
End If
Next j
rs.MoveNext
i = i + 1
Loop

热点排行
Bad Request.