检查一下你的 txtsql 是不是这样定义的:public txtsql as string,当然要在窗体级模块中定义才行

解决方案 »

  1.   

    对,声明为公有变量
    public txtSql as string
      

  2.   

    没有用啊!
    frmMater.txtSQL = "select * from material"txtSQL 是frmMater的一个属性啊?
    这句的意思是用来显示sql中数据的啊!
      

  3.   

    没有必要这么用啊,只需要定义一个string来表示sql语句然后用就是了,
    我不知道窗体还有txtsql属性吗?
      

  4.   

    你回答的地址:http://www.csdn.net/expert/topic/1026/1026610.xml?temp=.6012689是没有啊,所以才跳出来这样的错误啊!但是要显示在数据在frmMater这个窗体中的FlexGrid中啊!所以才这样做的啊一个窗体上面有一个FlexGrid Control 6.0(sp3)控件。现在想把我更新的数据写到FlexGrid Control控件中。就是用到下面的语句,但是在编译的时候,就发生了编译错误,说:未找到方法或数据成员
    frmMater.txtSQL = "select * from material"
    frmMater:是窗体的名称
    txtSQL:是自定义的字符串
    等号后面的是一句SQL语句
      

  5.   

    你的txtSQL到底是什么?
    是变量还是属性?
    在哪里定义的?如何定义的?
      

  6.   

    你还没有数据源的时候,是不能绑定数据的,不管是flexgrid 还是datagrid,当你帮定数据时,你必须首先给他赋上连接的字符串,然后再绑定数据源,这样在对数据库操作时就不会发生错误了,而且,别忘了要将打开的数据源给关闭了!!
      

  7.   

    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
      

  8.   

    这样你可以在Let Test里面做数据更新操作
      

  9.   

    Private testData As String
    用以存储属性的字符串值,以便通过Get方法获取
    str=Form.test
      

  10.   

    问题如下:
    1.在frmmater里面申明 Public txtSql As String
    2.改掉你的语法错误,有一个地方多了一个if
    3.Columns超标。定义维10
      

  11.   

    ShowData里面加上Dim mrc As New ADODB.Recordset
      

  12.   

    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") ......'网格有多少列,就写多少列,可少写但不能多写,否则出错!注意加循环控制语句!!可以给点分吧!!
      

  13.   

    补充:你可以在模块内打开数据库:CnSQL;在需要的地方打开表单:My_Rs;
    注意用完就关闭记录的连接,释放内存空间:My_Rs.Close,set My_Rs = nothing;退出应用程序时关闭数据库连结:CnSQL.Close;
      

  14.   

    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
        
        
        
        '移到当前的行列(填充行头)
        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自己看一下!
      

  15.   

    上面的
    Label1.Visible = False
    去掉!