我使用的数据访问控件是:Oracle Data Control
数据显示控件是:MSFlexGrid
1、Private Sub Form_Load()
   ORADC1.Connect = "user1/pass1"
   ORADC1.DatabaseName = "oradb"
   ORADC1.RecordSource = "select * from test"
   ORADC1.Refresh
     msgrid.textmatrix(0,1)=  "你好  " 
     msgrid.textmatrix(msgrid.row,0)=msgrid.row
  End Sub
   这段代码在Form_Load事件里可以检索出数据,可是没有更改字段名称和行号。但是把这段代码加在
   按钮里就可以更改字段名称和行号,这是为什么呢?是不是msgrid有什么属性需要设置?2、MSFlexGrid里显示的字段名称、行号和数据如何确定对齐方式(左对齐、右对齐、居中)?3、我已经把MSFlexGrid里的selectionmodal属性设置为1了,可是还是不能让一行高亮显示,还是只能
   一个单元格cell高亮显示,这是为什么?4、vb里数据类型转换的函数是什么?
   如:int->string string->int等等

解决方案 »

  1.   

    3.是不是你的列太少(<3列),看不出效果?
    4.cstr() 和cint()
      

  2.   

    第四问,抄别人的
    每个函数都可以强制将一个表达式转换成某种特定数据类型。语法
    CBool(expression)
    CByte(expression)
    CCur(expression)
    CDate(expression)
    CDbl(expression)
    CDec(expression)
    CInt(expression)
    CLng(expression)
    CSng(expression)
    CStr(expression)
    CVar(expression)
    CStr(expression)必要的 expression 参数可以是任何字符串表达式或数值表达式。返回类型
    函数名称决定返回类型,如下所示:函数 返回类型 expression 参数范围 
    CBool  Boolean 任何有效的字符串或数值表达式。 
    CByte  Byte 0 至 255。 
    CCur Currency -922,337,203,685,477.5808 至922,337,203,685,477.5807。 
    CDate Date 任何有效的日期表达式。 
    CDbl Double  负数从 -1.79769313486232E308 至 -4.94065645841247E-324;正数从 4.94065645841247E-324 至 1.79769313486232E308。 
    CDec Decimal 零变比数值,即无小数位数值,为 
    +/-79,228,162,514,264,337,593,543,950,335。对于 28 位小数的数值,范围则为 
    +/-7.9228162514264337593543950335;最小的可能非零值是 0.0000000000000000000000000001。 
    CInt Integer -32,768 至 32,767,小数部分四舍五入。 
    CLng Long -2,147,483,648 至 2,147,483,647,小数部分四舍五入。 
    CSng Single 负数为 -3.402823E38 至 -1.401298E-45;正数为 1.401298E-45 至 3.402823E38。 
    CStr String 依据 expression 参数返回 Cstr。 
    CVar Variant 若为数值,则范围与 Double 相同;若不为数值,则范围与 String 相同。 
    说明
    如果传递给函数的 expression 超过转换目标数据类型的范围,将发生错误。通常,在编码时可以使用数据类型转换函数,来体现某些操作的结果应该表示为特定的数据类型,而不是缺省的数据类型。例如,当单精度、双精度或整数运算发生的情况下,使用 CCur 来强制执行货币运算。应该使用数据类型转换函数来代替 Val,以使国际版的数据转换可以从一种数据类型转换为另一种。例如,当使用 Ccur 时,不同的小数点分隔符、千分位分隔符和各种货币选项,依据系统的国别设置都会被妥善识别。当小数部分恰好为 0.5 时,Cint 和 CLng 函数会将它转换为最接近的偶数值。例如,0.5 转换为 0、1.5 转换为 2。Cint 和 CLng 函数不同于 Fix 和 Int 函数,Fix 和 Int 函数会将小数部分截断而不是四舍五入。并且 Fix 和 Int 函数总是返回与传入的数据类型相同的值。使用 IsDate 函数,可判断 date 是否可以被转换为日期或时间。Cdate 可用来识别日期文字和时间文字,以及落入可接受的日期范围内的数值。当转换一个数字成为日期时,是将整数部分转换为日期,小数部分转换为从午夜起算的时间。CDate 依据系统上的国别设置来决定日期的格式。如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。另外,长日期格式,若包含有星期的字符串,也不能被识别。CVDate 函数也提供对早期 Visual Basic 版本的兼容性。CVDate 函数的语法与 CDate 函数是完全相同的,不过,CVDate 是返回一个 Variant,它的子类型是 Date,而不是实际的 Date 类型。因为现在已有真正的 Date 类型,所以 CVDate 也不再需要了。转换一个表达式成为 Date,再赋值给一个 Variant,也可以达到同样的效果。也可以使用这种技巧将其他真正的数据类型转换为对等的 Variant 子类型。注意 CDec 函数不能返回独立的数据类型,而总是返回一个 Variant,它的值已经被转换为 Decimal 子类型。
      

  3.   

    msgrid.CellAlignment属性可以设置对齐方式,不过只能设置单元格
    例:第2行居中对齐
    with  msgrid
        .row=2
        for i=1 to .cols-1
            .CellAlignment=4
        next
    end with附:
    常数 值 描述 
    flexAlignLeftTop 0 单元格的内容左、顶部对齐。 
    flexAlignLeftCenter 1 字符串的缺省对齐方式。单元格的内容左、居中对齐。 
    flexAlignLeftBottom 2 单元格的内容左、底部对齐。 
    flexAlignCenterTop 3 单元格的内容居中、顶部对齐。 
    flexAlignCenterCenter 4 单元格的内容居中、居中对齐。 
    flexAlignCenterBottom 5 单元格的内容居中、底部对齐。 
    flexAlignRightTop 6 单元格的内容右、顶部对齐。 
    flexAlignRightCenter 7 数值的缺省对齐方式。单元格的内容右、居中对齐。 
    flexAlignRightBottom 8 单元格的内容右、底部对齐。 
    flexAlignGeneral 9 单元格的内容按一般方式进行对齐。字符串按“左、居中”显示,数字按“右、居中”。 
      

  4.   

    with  msgrid
        .row=2
        for i=1 to .cols-1
            .col=i                  '刚才写掉了这句
            .CellAlignment=4
        next
    end with
      

  5.   

    1、form_load 中你设定字段名的时候可能grid还没有初始化~!你把初始化的代码放在一个sub里面,然后在from_Load里面调用看看是不是就好了!
    2、ColAlignment、ColAlignmentBand、ColAlignmentHeader 返回或者设置列中数据的对齐方式
    flexAlignLeftTop 0 单元格的内容左、顶部对齐。 
    flexAlignLeftCenter 1 字符串的缺省对齐方式。单元格的内容左、居中对齐。 
    flexAlignLeftBottom 2 单元格的内容左、底部对齐。 
    flexAlignCenterTop 3 单元格的内容居中、顶部对齐。 
    flexAlignCenterCenter 4 单元格的内容居中、居中对齐。 
    flexAlignCenterBottom 5 单元格的内容居中、底部对齐。 
    flexAlignRightTop 6 单元格的内容右、顶部对齐。 
    flexAlignRightCenter 7 数值的缺省对齐方式。单元格的内容右、居中对齐。 
    flexAlignRightBottom 8 单元格的内容右、底部对齐。 
    flexAlignGeneral 9 单元格的内容按一般方式进行对齐。字符串按“左、居中”显示,数字按“右、居中”显示。 下面的代码用常数值将第 3 列的对齐方式设置为右对齐
    Sub Form1_Load ()
       MSHFlexGrid1.ColAlignment(3) = flexAlignRight
    End Sub
    3、要能选择整行,需要在grid的属性里面把用户选择模式--改成 行,而不是默认的单元格
    4、cstr() 和cint()