Private testData As String Public Property Get test() As String test = testData End PropertyPublic Property Let test(ByVal vNewValue As String) testData = vNewValue End Property
这样你可以在Let Test里面做数据更新操作
Private testData As String 用以存储属性的字符串值,以便通过Get方法获取 str=Form.test
问题如下: 1.在frmmater里面申明 Public txtSql As String 2.改掉你的语法错误,有一个地方多了一个if 3.Columns超标。定义维10
ShowData里面加上Dim mrc As New ADODB.Recordset
3798 (海) ,我想是你的用法不正确,你没有必要那么用!!你这样试一下:dim CnStr$,My_Sql$ dim CnSQL As New ADODB.Connection dim My_Rs As New ADODB.Recordset My_Sql$="select * from material" CnStr$ = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & My_Path & "\" & My_Db & ".mdb;" & _ "Persist Security Info=False" CnSQL.Open CnStrMy_Rs.open My_Sql$,CnSQL, adOpenKeyset, adLockPessimistic '现在应该打开数据库啦,然后加载记录到控件 flxGrid.AddItem My_Rs.fields("字段名1") & VbTab & My_Rs.fields("字段名2") & VbTab & My_Rs.fields("字段名2") ......'网格有多少列,就写多少列,可少写但不能多写,否则出错!注意加循环控制语句!!可以给点分吧!!
One Form,One FlexGrid,One Module; Form Code: Private Sub Command1_Click() Dim strSelectAll As String Dim rsSelectAll As ADODB.Recordset Set rsSelectAll = New ADODB.Recordset InitializeFlgHead strSelectAll = "Select * From Device" If AccessADODataBase(strSelectAll, gadoConnect, adOpenStatic, True, rsSelectAll) Then rsSelectAll.MoveFirst While Not rsSelectAll.EOF ' Combo1.AddItem rsSelectAll.Fields(0) MSFlexGrid1.Row = MSFlexGrid1.Row + 1 '填充下一行 For i = 0 To Col_Num - 2 MSFlexGrid1.Col = i '设置列值 MSFlexGrid1.Text = rsSelectAll.Fields(i) Next MSFlexGrid1.Col = Col_Num - 1 '设置列值 MSFlexGrid1.Text = Status(rsSelectAll.Fields(Col_Num - 1)) rsSelectAll.MoveNext Wend End If rsSelectAll.Close Set rsSelectAll = Nothing
End Sub Private Sub InitializeFlgHead() MSFlexGrid1.Visible = True MSFlexGrid1.Rows = Row_Num '设置显示方格的总行数 MSFlexGrid1.Cols = Col_Num '设置显示方格的总列数 MSFlexGrid1.ScrollBars = flexScrollBarBoth '设定Flex的宽和高 MSFlexGrid1.Move ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight
Dim i, j As Integer For i = 0 To Row_Num - 1 For j = 0 To Col_Num - 1 MSFlexGrid1.ColWidth(j) = 1000 MSFlexGrid1.ColAlignment(j) = flexAlignCenterCenter '4 Next j Next i
End SubPrivate Sub Form_Load()If ConnectSQLServer(gServerName, gDBName, gUserName, gPWD) Then MsgBox "连接成功!" Else MsgBox "连接失败!" End If InitializeVariableLabel1.Visible = FalseEnd SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)' gadoConnect.Close ' Set gadoConnect = NothingEnd SubPrivate Sub Form_Unload(Cancel As Integer) gadoConnect.Close Set gadoConnect = NothingEnd Sub Module Code: '基本信息设定 Public Const gServerName = "SoftServer" Public Const gDBName = "Report" Public Const gUserName = "SA" Public Const gPWD = "123"'全局连接设定 Public gadoConnect As New ADODB.Connection '全局ADO连接 Public gadoRecordset As New ADODB.Recordset '全ADO结果集 Public gadoCommand As New ADODB.Command '全局ADO执行命令 Public gConnectStatus As Boolean '全局连接状态'先将DeviceID设为常量 Public Const DeviceID = 1'定义设备状态 Public Status(2) As String'设置显示的行列 Public Const Row_Num = 40 Public Const Col_Num = 7'初始化信息 Public Sub InitializeVariable() Status(0) = "正常使用" Status(1) = "损坏状态" Status(2) = "维护状态"End Sub '连接本站数据库(ADO 使用SQL Server) Public Function ConnectSQLServer(ByVal ServerName As String, ByVal DBName As String, ByVal UserName As String, ByVal PWD As String) As Boolean
End Function'参数定义 'strSQL--查询字符串(若为空,则刷新该结果集--本程序中仅指车道监视的定时更新) 'adoConnect --ADO远程连接 'AcessType--返回结果集的类型(即系统定义的四种:adOpenForwardOnly adOpenStatic adOpenDynamic adOpenKeyset) 'IsNeedReturnValue--指是否有返回结果:TRUE(有)--则检查是否为空 FALSE(无)--直接返回adoRecordset 'adoRecordset--返回的结果集 '注:已经改成异步Public Function AccessADODataBase(ByVal strSql As String, ByVal adoConnect As ADODB.Connection, ByVal AcessType As Long, ByVal IsNeedReturnValue As Boolean, ByRef adoRecordset As ADODB.Recordset) As Boolean '一个自定义的SQL操作的函数 End Function自己看一下!
public txtSql as string
frmMater.txtSQL = "select * from material"txtSQL 是frmMater的一个属性啊?
这句的意思是用来显示sql中数据的啊!
我不知道窗体还有txtsql属性吗?
frmMater.txtSQL = "select * from material"
frmMater:是窗体的名称
txtSQL:是自定义的字符串
等号后面的是一句SQL语句
是变量还是属性?
在哪里定义的?如何定义的?
Public Property Get test() As String
test = testData
End PropertyPublic Property Let test(ByVal vNewValue As String)
testData = vNewValue
End Property
用以存储属性的字符串值,以便通过Get方法获取
str=Form.test
1.在frmmater里面申明 Public txtSql As String
2.改掉你的语法错误,有一个地方多了一个if
3.Columns超标。定义维10
dim CnSQL As New ADODB.Connection
dim My_Rs As New ADODB.Recordset
My_Sql$="select * from material"
CnStr$ = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & My_Path & "\" & My_Db & ".mdb;" & _
"Persist Security Info=False"
CnSQL.Open CnStrMy_Rs.open My_Sql$,CnSQL, adOpenKeyset, adLockPessimistic
'现在应该打开数据库啦,然后加载记录到控件
flxGrid.AddItem My_Rs.fields("字段名1") & VbTab & My_Rs.fields("字段名2") & VbTab & My_Rs.fields("字段名2") ......'网格有多少列,就写多少列,可少写但不能多写,否则出错!注意加循环控制语句!!可以给点分吧!!
注意用完就关闭记录的连接,释放内存空间:My_Rs.Close,set My_Rs = nothing;退出应用程序时关闭数据库连结:CnSQL.Close;
Form Code:
Private Sub Command1_Click() Dim strSelectAll As String
Dim rsSelectAll As ADODB.Recordset Set rsSelectAll = New ADODB.Recordset InitializeFlgHead strSelectAll = "Select * From Device" If AccessADODataBase(strSelectAll, gadoConnect, adOpenStatic, True, rsSelectAll) Then rsSelectAll.MoveFirst
While Not rsSelectAll.EOF
' Combo1.AddItem rsSelectAll.Fields(0)
MSFlexGrid1.Row = MSFlexGrid1.Row + 1 '填充下一行
For i = 0 To Col_Num - 2
MSFlexGrid1.Col = i '设置列值
MSFlexGrid1.Text = rsSelectAll.Fields(i)
Next
MSFlexGrid1.Col = Col_Num - 1 '设置列值
MSFlexGrid1.Text = Status(rsSelectAll.Fields(Col_Num - 1))
rsSelectAll.MoveNext
Wend End If rsSelectAll.Close
Set rsSelectAll = Nothing
End Sub
Private Sub InitializeFlgHead()
MSFlexGrid1.Visible = True
MSFlexGrid1.Rows = Row_Num '设置显示方格的总行数
MSFlexGrid1.Cols = Col_Num '设置显示方格的总列数
MSFlexGrid1.ScrollBars = flexScrollBarBoth
'设定Flex的宽和高
MSFlexGrid1.Move ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight
Dim i, j As Integer
For i = 0 To Row_Num - 1
For j = 0 To Col_Num - 1
MSFlexGrid1.ColWidth(j) = 1000
MSFlexGrid1.ColAlignment(j) = flexAlignCenterCenter '4
Next j
Next i
'移到当前的行列(填充行头)
MSFlexGrid1.Row = 0
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = "设备编号"
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = "设备名称"
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = "组别编号"
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = "规格" MSFlexGrid1.Col = 4
MSFlexGrid1.Text = "价格"
MSFlexGrid1.Col = 5
MSFlexGrid1.Text = "投入使用日期"
MSFlexGrid1.Col = 6
MSFlexGrid1.Text = "设备状态"
End SubPrivate Sub Form_Load()If ConnectSQLServer(gServerName, gDBName, gUserName, gPWD) Then
MsgBox "连接成功!"
Else
MsgBox "连接失败!"
End If
InitializeVariableLabel1.Visible = FalseEnd SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)' gadoConnect.Close
' Set gadoConnect = NothingEnd SubPrivate Sub Form_Unload(Cancel As Integer) gadoConnect.Close
Set gadoConnect = NothingEnd Sub
Module Code:
'基本信息设定
Public Const gServerName = "SoftServer"
Public Const gDBName = "Report"
Public Const gUserName = "SA"
Public Const gPWD = "123"'全局连接设定
Public gadoConnect As New ADODB.Connection '全局ADO连接
Public gadoRecordset As New ADODB.Recordset '全ADO结果集
Public gadoCommand As New ADODB.Command '全局ADO执行命令
Public gConnectStatus As Boolean '全局连接状态'先将DeviceID设为常量
Public Const DeviceID = 1'定义设备状态
Public Status(2) As String'设置显示的行列
Public Const Row_Num = 40
Public Const Col_Num = 7'初始化信息
Public Sub InitializeVariable() Status(0) = "正常使用"
Status(1) = "损坏状态"
Status(2) = "维护状态"End Sub
'连接本站数据库(ADO 使用SQL Server)
Public Function ConnectSQLServer(ByVal ServerName As String, ByVal DBName As String, ByVal UserName As String, ByVal PWD As String) As Boolean
Dim strConnect As String
On Error GoTo Error_ConnectSQLServer
gadoConnect.CursorLocation = adUseClient
strConnect = "Driver={SQL Server};Server=" & ServerName & ";DataBase=" & DBName & ";UID=" & UserName & ";PWD=" & PWD & ";"
gadoConnect.Open strConnect
ConnectSQLServer = True
Exit Function
Error_ConnectSQLServer:
ConnectSQLServer = False
End Function'参数定义
'strSQL--查询字符串(若为空,则刷新该结果集--本程序中仅指车道监视的定时更新)
'adoConnect --ADO远程连接
'AcessType--返回结果集的类型(即系统定义的四种:adOpenForwardOnly adOpenStatic adOpenDynamic adOpenKeyset)
'IsNeedReturnValue--指是否有返回结果:TRUE(有)--则检查是否为空 FALSE(无)--直接返回adoRecordset
'adoRecordset--返回的结果集
'注:已经改成异步Public Function AccessADODataBase(ByVal strSql As String, ByVal adoConnect As ADODB.Connection, ByVal AcessType As Long, ByVal IsNeedReturnValue As Boolean, ByRef adoRecordset As ADODB.Recordset) As Boolean
'一个自定义的SQL操作的函数
End Function自己看一下!
Label1.Visible = False
去掉!