'下面是代码示意
'Dim conn As ADODB.Connection
'Dim rs As ADODB.RecordSet
'Dim sql As String
'grid是DataGrid控件名称
'下面的代码执行前conn已经正确Open了If rs.State = adStateOpen Then
  rs.Close
End If
sql = "select ......"
rs.Open sql, conn, adOpenStatic, adLockReadOnly, adCmdText
grid.Columns.Item(0).DataField = "field1"
grid.Columns.Item(1).DataField = "field2"
grid.Columns.Item(2).DataField = "field3"
Set grid.DataSource = rs在装过VB的机器上运行正常,而到没装过VB的机器上运行则跳出错误:"Cannot initialize data bindings",不知道怎么回事
(注:这段代码用到的msvbvm60.dll、MSDATGRD.OCX、odbcjt32.dll已经拷到目标机上了,难道打包时VB运行时库没打全?)

解决方案 »

  1.   

    还是要打个包吧。
    还有一个可能,你把msvbvm60.dll、MSDATGRD.OCX、odbcjt32.dll已经拷到目标机上了,但是没有注册(Regsvr32)它们。
      

  2.   

    把下面三句注释掉看看,好象平时不用写这些的:
    grid.Columns.Item(0).DataField = "field1"
    grid.Columns.Item(1).DataField = "field2"
    grid.Columns.Item(2).DataField = "field3"
      

  3.   

    那应该怎么设置DataGrid的列数?以及怎样设置某列绑定到特定字段?
      

  4.   

    Set grid.DataSource = rs  '它是自动绑定的吧,如果你想调整字段顺序,在rs中的调整字段顺序就行了。
      

  5.   

    如果绑定到记录集,应在打开记录集之前:
    conn.CursorLocation = adUseClient
      

  6.   

    用VB自带的打包工具打包一定要打包mdac_typ.exe然后到别的机器上安装