VB中的TDGrid中的Columns是哪一行的列?由于本人没用过TDGrid,请解释一下,谢谢!

C罗子 2016-11-25 10:40:21
VB代码为:
    If TraceabilityFlg = 1 Then
TMsgTxt = TraceabilityRCheck()
If Len(TMsgTxt) <> 0 Then
MsgBox grdMain.Columns("CD").Value & "号未设定、" _
& vbCrLf & "请设定", vbInformation + vbOKOnly + vbDefaultButton1

Exit Sub

End If

TMsgTxt = TraceabilityZCheck()
If Len(TMsgTxt) <> 0 Then
MsgBox grdMain.Columns("CD").Value & "号未设定、" _
& vbCrLf & "请设定", vbInformation + vbOKOnly + vbDefaultButton1
Exit Sub

End If

End If

这里的grdMain.Columns("CD")应该是表格控件TDGrid的某一行的列名为"CD"的数据,那么指的是哪一行的CD?
...全文
567 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
C罗子 2016-11-29
  • 打赏
  • 举报
回复
引用 8 楼 Tiger_Zhao 的回复:
.Row 属性指定当前的行号(从0起始) .Columns("CD").Value 存取当前行的 CD 列单元的值。 其中 CD 可以是绑定记录的字段名、也可以是列标题文本;至于是哪种参数,你得自己分析了。
如下代码的Exit Do让我明白了,其实那个.Columns("CD").Value取得是方法TraceabilityZCheck() 中的ChkStr,这个值是单个的值,取到就跳出循环了。谢谢!
Private Function TraceabilityZCheck() As String
 Dim m_rs As ADODB.Recordset
 Dim ChkStr  As String
  On Error GoTo Err_Handler
    TraceabilityZCheck = ""
    ChkStr = ""
    Set m_rs = m_rsDirect.Clone(adLockReadOnly)
   Do Until m_rs.EOF = True
            If (m_rs.Fields("数量").Value <> "") _
            And (IsNull(m_rs.Fields("重量").Value) Or m_rs.Fields("重量").Value = "") _
            Then
                  ChkStr = ChkStr + CStr(m_rs.Fields("CD"))
                  Exit Do
            End If
             m_rs.MoveNext
    Loop
    Call ReleaseRecordset(m_rs)
    TraceabilityZCheck = ChkStr
    Exit Function
End Function 'TraceabilityZCheck
C罗子 2016-11-29
  • 打赏
  • 举报
回复
引用 8 楼 Tiger_Zhao 的回复:
.Row 属性指定当前的行号(从0起始)
.Columns("CD").Value 存取当前行的 CD 列单元的值。
其中 CD 可以是绑定记录的字段名、也可以是列标题文本;至于是哪种参数,你得自己分析了。

像这种去循环的我能理解:

但是直接写.Columns("CD").Value这个写法很显然是取名字叫做CD的那一列的value,这个value是一个值不是多个值,那么一个值的话是哪一行的值就困惑了,这里又没有循环。
C罗子 2016-11-29
  • 打赏
  • 举报
回复
引用 8 楼 Tiger_Zhao 的回复:
.Row 属性指定当前的行号(从0起始) .Columns("CD").Value 存取当前行的 CD 列单元的值。 其中 CD 可以是绑定记录的字段名、也可以是列标题文本;至于是哪种参数,你得自己分析了。
您好,您说的当前行是肯定得有个什么事件之类的触发才会产生当前行吧?比如说点击了鼠标左键之类的,我这个也确实是点击了一个按钮调用到了这里的代码,但是代码里的这种写法让我不知道取得是哪一行的CD,如果说是点击了某一行TDBGrid的某一行调用了这个代码我能理解,那样的话这一行应该指的是点击的这一行的CD,但是我这里并不是点击TDBGrid调用的这个代码。您那边有相关的使用.Columns("XXX")例子可以给出一段代码吗?
Tiger_Zhao 2016-11-28
  • 打赏
  • 举报
回复
.Row 属性指定当前的行号(从0起始)
.Columns("CD").Value 存取当前行的 CD 列单元的值。
其中 CD 可以是绑定记录的字段名、也可以是列标题文本;至于是哪种参数,你得自己分析了。
C罗子 2016-11-25
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
使用 Columns(index) 可返回一个 Column 对象。 全部显示 返回集合中的对象
您好,您指的全部显示名就相当于这个grdMain.Columns("CD").Value是名字为"CD"的这一列的全部数据吗?比如说CD这一列是5行数据,分别是101,102,103,104,105.那么grdMain.Columns("CD")是这个列的集合吗?grdMain.Columns("CD")相当于101,102,103,104,105吗?那么.Value又代表什么呢?
赵4老师 2016-11-25
  • 打赏
  • 举报
回复
使用 Columns(index) 可返回一个 Column 对象。 全部显示 返回集合中的对象 请参阅特性 Item 属性返回集合中的单个对象。下例将变量 firstBook 设置为代表第一个工作簿的 Workbook 对象。 Set FirstBook = Workbooks.Item(1) Item 属性是大多数集合的默认属性,因此通过省略 Item 关键字,可将相同的语句简化。 Set FirstBook = Workbooks(1) 有关特定集合的详细信息,请参阅该集合或该集合的 Item 属性的“帮助”主题。 命名对象 虽然通常可用 Item 属性指定一个整数值,但使用对象的名称可能更为方便。在将名称与 Item 属性配合使用前,必须先为对象命名。命名对象最常用的方法是设置对象的 Name 属性。下例在活动工作簿中创建了一个命名工作表,然后用名称引用该工作表。 ActiveWorkbook.Worksheets.Add.Name = "A New Sheet" With Worksheets("A New Sheet") .Range("A5:A10").Formula = "=RAND()" End With 预定义索引值 有些集合有预定义的索引值,可用于返回单个对象。每一个预定义索引值用一个常量表示。例如,可用 Borders 集合的 Item 属性指定 XlBordersIndex 常量,以返回单个边框。 下例将 Sheet1 中单元格区域 A1:G1 的底部边框设置为双线。 Worksheets("Sheet1").Range("A1:A1"). _ Borders.Item(xlEdgeBottom).LineStyle = xlDouble
C罗子 2016-11-25
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
当前行 .Row 属性?
是这个grdMain.Columns("CD"),这个代表的是什么?当前列?
赵4老师 2016-11-25
  • 打赏
  • 举报
回复
当前行 .Row 属性?
赵4老师 2016-11-25
  • 打赏
  • 举报
回复
不能调试的源代码还叫源代码吗?
C罗子 2016-11-25
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
注释掉所有On Error Resume Next语句,在VBA IDE中运行,出错后点击调试或设断点后点击运行,光标会停在出错或命中断点的那条语句处,此时可以在立即窗口中使用 ?变量名 或 ?函数名(函数参数) 或 过程名(参数) 辅助调试。
这个是10年前的程序员开发的程序,开发的人也不在公司了。VB程序已经不能运行了,只有代码,现在是把这个VB版本改成C#版本,因此需要知道这个意思,不能调试。
赵4老师 2016-11-25
  • 打赏
  • 举报
回复
注释掉所有On Error Resume Next语句,在VBA IDE中运行,出错后点击调试或设断点后点击运行,光标会停在出错或命中断点的那条语句处,此时可以在立即窗口中使用 ?变量名 或 ?函数名(函数参数) 或 过程名(参数) 辅助调试。

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧