关于SPREAD7.0控件的使用 高手请教几个很菜的问题:1、怎样将数据库中的内容通过spread7.0控件显示出来?2、spread7.0的注册码有没有?最好能提供中文使用手册 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Public Sub DisPlayDate() Dim ADORst As ADODB.Recordset Dim ADORst1 As ADODB.Recordset Dim ADORst2 As ADODB.Recordset Dim ADORst3 As ADODB.Recordset Dim strSQL As String Dim strSQL1 As String Dim Nrow As Integer strSQL = "" strSQL = strSQL & "SELECT " & vbCrLf strSQL = strSQL & " dbo.T_M_Assetssubject.Assetssubjectcode, " & vbCrLf strSQL = strSQL & " dbo.T_M_Assetssubject.Assetssubjectname, " & vbCrLf strSQL = strSQL & " dbo.T_M_Assetssubject.Assetsdivisioncode, " & vbCrLf strSQL = strSQL & " dbo.T_M_Assetssubject.Redemptioncode, " & vbCrLf strSQL = strSQL & " dbo.T_M_Assetssubject.AccountItemCode " & vbCrLf strSQL = strSQL & "FROM " & vbCrLf strSQL = strSQL & " dbo.T_M_Assetssubject " & vbCrLf strSQL = strSQL & "ORDER BY " & vbCrLf strSQL = strSQL & " dbo.T_M_Assetssubject.Assetssubjectcode, " & vbCrLf strSQL = strSQL & " dbo.T_M_Assetssubject.Assetssubjectname, " & vbCrLf strSQL = strSQL & " dbo.T_M_Assetssubject.Assetsdivisioncode, " & vbCrLf strSQL = strSQL & " dbo.T_M_Assetssubject.Redemptioncode, " & vbCrLf strSQL = strSQL & " dbo.T_M_Assetssubject.AccountItemCode " & vbCrLf Set ADORst = Connection.OpenSQL(strSQL, adOpenKeyset, adLockOptimistic) Nrow = 0 ADORst.MoveFirst Do Until ADORst.EOF Nrow = Nrow + 1 With sprAssetsitemsMaster .Row = Nrow .Col = 1 .Value = ADORst.Fields(0) .Col = 2 .Value = ADORst.Fields(1) .Col = 3 '第三列是COMBOBOX单元格,我在给其初始赋值时有两个字段( ' CODE,NAME),最终显示时想只显示CODE,NAME在他后面的单元格里显示 .Value = ADORst.Fields(2) Dim Adc As Integer Adc = .Value .Col = 4 '第四列要显示的NAME strSQL1 = "" strSQL1 = strSQL1 & "SELECT Assetsdivision " & vbCrLf strSQL1 = strSQL1 & "FROM " & vbCrLf strSQL1 = strSQL1 & " T_M_Assetsdivision " & vbCrLf strSQL1 = strSQL1 & "WHERE " & vbCrLf strSQL1 = strSQL1 & " Assetsdivisioncode=" & CStr(Adc) & vbCrLf Set ADORst1 = Connection.OpenSQL(strSQL1, adOpenKeyset, adLockOptimistic) .Value = CStr(ADORst1.Fields(0)) Call CloseRecordset(ADORst1) .Col = 5 ADORst.MovePrevious .Value = ADORst.Fields(3) Dim RC As Integer RC = .Value .Col = 6 strSQL1 = "" strSQL1 = strSQL1 & "SELECT Redemptionname " & vbCrLf strSQL1 = strSQL1 & "FROM " & vbCrLf strSQL1 = strSQL1 & " T_M_Redemption " & vbCrLf strSQL1 = strSQL1 & "WHERE " & vbCrLf strSQL1 = strSQL1 & " Redemptioncode=" & CStr(RC) & vbCrLf Set ADORst2 = Connection.OpenSQL(strSQL1, adOpenKeyset, adLockOptimistic) .Value = CStr(ADORst2.Fields(0)) Call CloseRecordset(ADORst2) .Col = 7 .Value = ADORst.Fields(4) Dim AIN As Integer AIN = .Value .Col = 8 strSQL1 = "" strSQL1 = strSQL1 & "SELECT AccountItemName " & vbCrLf strSQL1 = strSQL1 & "FROM " & vbCrLf strSQL1 = strSQL1 & " T_M_AccountItem " & vbCrLf strSQL1 = strSQL1 & "WHERE " & vbCrLf strSQL1 = strSQL1 & " AccountItemCode=" & CStr(AIN) & vbCrLf Set ADORst3 = Connection1.OpenSQL(strSQL1, adOpenKeyset, adLockOptimistic) .Value = CStr(ADORst3.Fields(0)) Call CloseRecordset(ADORst3) .MaxRows = Nrow + 1 End With If ADORst.EOF = False Then ADORst.MoveNext End If Loop end sub 楼上的做法效率很低,还不如用绑定来得快。Private Sub Form_Load() ' 初始化 Spread,当然也可以在Spread设计器里做 With fpSpread1 .MaxRows = 0 .MaxCols = 3 .Col = 1 .DataField = "EmployeeID" .Col = 2 .DataField = "FirstName" .Col = 3 .DataField = "LastName" '... End With End Sub' 绑定到数据源Private Sub Command1_Click() Set fpSpread1.DataSource = Adodc1 fpSpread1.MaxRows = fpSpread1.DataRowCnt End Sub 留个Email,我发个注册码给你。 我现在用的是6.0,主要这么用:With spdList .MaxRows = 0 .MaxCols = 0 .MaxRows = Rs.RecordCount .MaxCols = Rs.Fields.Count Do While Not Rs.EOF pRow = pRow + 1 .Row = pRow .Col = 1: .Text = "" & Rs(0) .Col = 2: .Text = "" & Rs(1) .Col = 3: .Text = "" & Rs(2) .Col = 4: .Text = "" & Rs(3) .Col = 5: .Text = "" & Rs(4) .Col = 6: .Text = "" & Rs(5) .Col = 7: .Text = "" & Rs(6) Rs.MoveNext Loop .Row = -1 .Col = 1 .Lock = True .Row = -1 .Col = 7 .Lock = True End With fj182,你好,假如我想把某列(.col=1)设成combo控件,在spread design设完后,用你的代码会失去combo1.要求:combo的初始值为数据表的字段值,下拉框可选择。如何办? 关于VB抓句柄 抓取网页中的内容 删除Excel模板中的行 请问一个按钮问题 请问谁有平面按钮 请教斑竹和各位高手,在VSHFlexGrid控件中任意行双击,如何返回该行的位置?在线等!!! 如何修改VB环境的默认字体 类中声明的控件 Err.Raise 32767是什么意思,后面的数字写多少是怎么规定的 怎样用filelistbox显示指定的路径的文件?????谢谢大家!!!!我快憋死了111 datagrid绑定rst后,当rst增加记录(addnew)后,datagrid不能及时更新? Winsock重复收到数据???
Dim ADORst As ADODB.Recordset
Dim ADORst1 As ADODB.Recordset
Dim ADORst2 As ADODB.Recordset
Dim ADORst3 As ADODB.Recordset
Dim strSQL As String
Dim strSQL1 As String
Dim Nrow As Integer
strSQL = ""
strSQL = strSQL & "SELECT " & vbCrLf
strSQL = strSQL & " dbo.T_M_Assetssubject.Assetssubjectcode, " & vbCrLf
strSQL = strSQL & " dbo.T_M_Assetssubject.Assetssubjectname, " & vbCrLf
strSQL = strSQL & " dbo.T_M_Assetssubject.Assetsdivisioncode, " & vbCrLf
strSQL = strSQL & " dbo.T_M_Assetssubject.Redemptioncode, " & vbCrLf
strSQL = strSQL & " dbo.T_M_Assetssubject.AccountItemCode " & vbCrLf
strSQL = strSQL & "FROM " & vbCrLf
strSQL = strSQL & " dbo.T_M_Assetssubject " & vbCrLf
strSQL = strSQL & "ORDER BY " & vbCrLf
strSQL = strSQL & " dbo.T_M_Assetssubject.Assetssubjectcode, " & vbCrLf
strSQL = strSQL & " dbo.T_M_Assetssubject.Assetssubjectname, " & vbCrLf
strSQL = strSQL & " dbo.T_M_Assetssubject.Assetsdivisioncode, " & vbCrLf
strSQL = strSQL & " dbo.T_M_Assetssubject.Redemptioncode, " & vbCrLf
strSQL = strSQL & " dbo.T_M_Assetssubject.AccountItemCode " & vbCrLf
Set ADORst = Connection.OpenSQL(strSQL, adOpenKeyset, adLockOptimistic)
Nrow = 0
ADORst.MoveFirst
Do Until ADORst.EOF
Nrow = Nrow + 1
With sprAssetsitemsMaster
.Row = Nrow
.Col = 1
.Value = ADORst.Fields(0)
.Col = 2
.Value = ADORst.Fields(1)
.Col = 3 '第三列是COMBOBOX单元格,我在给其初始赋值时有两个字段(
' CODE,NAME),最终显示时想只显示CODE,NAME在他后面的单元格里显示
.Value = ADORst.Fields(2)
Dim Adc As Integer
Adc = .Value
.Col = 4 '第四列要显示的NAME
strSQL1 = ""
strSQL1 = strSQL1 & "SELECT Assetsdivision " & vbCrLf
strSQL1 = strSQL1 & "FROM " & vbCrLf
strSQL1 = strSQL1 & " T_M_Assetsdivision " & vbCrLf
strSQL1 = strSQL1 & "WHERE " & vbCrLf
strSQL1 = strSQL1 & " Assetsdivisioncode=" & CStr(Adc) & vbCrLf
Set ADORst1 = Connection.OpenSQL(strSQL1, adOpenKeyset, adLockOptimistic)
.Value = CStr(ADORst1.Fields(0))
Call CloseRecordset(ADORst1)
.Col = 5
ADORst.MovePrevious
.Value = ADORst.Fields(3)
Dim RC As Integer
RC = .Value
.Col = 6
strSQL1 = ""
strSQL1 = strSQL1 & "SELECT Redemptionname " & vbCrLf
strSQL1 = strSQL1 & "FROM " & vbCrLf
strSQL1 = strSQL1 & " T_M_Redemption " & vbCrLf
strSQL1 = strSQL1 & "WHERE " & vbCrLf
strSQL1 = strSQL1 & " Redemptioncode=" & CStr(RC) & vbCrLf
Set ADORst2 = Connection.OpenSQL(strSQL1, adOpenKeyset, adLockOptimistic)
.Value = CStr(ADORst2.Fields(0))
Call CloseRecordset(ADORst2)
.Col = 7
.Value = ADORst.Fields(4)
Dim AIN As Integer
AIN = .Value
.Col = 8
strSQL1 = ""
strSQL1 = strSQL1 & "SELECT AccountItemName " & vbCrLf
strSQL1 = strSQL1 & "FROM " & vbCrLf
strSQL1 = strSQL1 & " T_M_AccountItem " & vbCrLf
strSQL1 = strSQL1 & "WHERE " & vbCrLf
strSQL1 = strSQL1 & " AccountItemCode=" & CStr(AIN) & vbCrLf
Set ADORst3 = Connection1.OpenSQL(strSQL1, adOpenKeyset, adLockOptimistic)
.Value = CStr(ADORst3.Fields(0))
Call CloseRecordset(ADORst3)
.MaxRows = Nrow + 1
End With
If ADORst.EOF = False Then
ADORst.MoveNext
End If
Loop
end sub
' 初始化 Spread,当然也可以在Spread设计器里做
With fpSpread1
.MaxRows = 0
.MaxCols = 3
.Col = 1
.DataField = "EmployeeID"
.Col = 2
.DataField = "FirstName"
.Col = 3
.DataField = "LastName"
'...
End With
End Sub' 绑定到数据源
Private Sub Command1_Click()
Set fpSpread1.DataSource = Adodc1
fpSpread1.MaxRows = fpSpread1.DataRowCnt
End Sub
With spdList
.MaxRows = 0
.MaxCols = 0
.MaxRows = Rs.RecordCount
.MaxCols = Rs.Fields.Count
Do While Not Rs.EOF
pRow = pRow + 1
.Row = pRow
.Col = 1: .Text = "" & Rs(0)
.Col = 2: .Text = "" & Rs(1)
.Col = 3: .Text = "" & Rs(2)
.Col = 4: .Text = "" & Rs(3)
.Col = 5: .Text = "" & Rs(4)
.Col = 6: .Text = "" & Rs(5)
.Col = 7: .Text = "" & Rs(6)
Rs.MoveNext
Loop
.Row = -1
.Col = 1
.Lock = True
.Row = -1
.Col = 7
.Lock = True
End With
要求:combo的初始值为数据表的字段值,下拉框可选择。如何办?