初来乍到,请教斑主和各位高手:
我想在程序运行时向组合框添加项目,思路是这样的:先打开(创建)一随机文件,通过For循环用Get语句读取全部记录,并把每条记录的part元素值(自定义数据类型)与组合框现有项目比较,如果与其中一个项目相同则不添加,否则把该记录的part元素值添加到组合框下拉列表中。可是我用 If Ucase(Trim(tempbrake.Part)) = Ucase(Trim(combrake.Part)) Then 比较字符串时,不论是否完全相同,比较的结果都是False,即then后的语句根本不执行,结果下拉项目就成了:张三\张三\李四\张三\李四\王五\张三\李四\王五\李四.....这是为什么?如果象这样不能实现向组合框添加项目,我该怎么做? 可是我曾看到过这样比较字符串的例子,不过不是自定义数据类型,是控件的TEXT属性值 ,我怎么也不明白是怎么回事,请高手不吝赐教!
下面是添加项目的通用子程序
Option Explicit Type brakeAtt '自定义数据类型 Name As String * 20 Part As String * 10 Position As String * 10 Entrance As String * 10 End Type
Public Sub Showcurrentpart() '通用过程将记录的part元素值添加到组合框下拉列表 Dim tempbrake As brakeAtt '存取记录的变量 Dim combrake As brakeAtt '将组合框现有项目赋给combrake的part元素,为的是与记录的part元素值类型、长度一致 Dim i As Long Dim flag As Boolean, j As Integer flag = False '赋初值,flag为False时可以添加项目 For i = 1 To lastbrake 'lastbrake为保存最后一条记录号的变量 Get #brakefilenum, i, tempbrake For j = 0 To Frmaddbrake.Cobpart.ListCount - 1 combrake.Part = Frmaddbrake.Cobpart.List(j) '将组合框现有项目赋给combrake的part元素,这个我曾试过用动态数组A(),比较测试时以为是因为字符串长度不一致就改了 If Ucase(Trim(tempbrake.Part)) = Ucase(Trim(combrake.Part)) Then '判断 flag = True Exit For End If Next j If flag = False Then Frmaddbrake.Cobpart.AddItem tempbrake.Part '添加项目 Frmmain.Cobpart.AddItem tempbrake.Part End If Next i End Sub
我的小程序还没做好,才刚开头,传上来,请大家帮帮我,我急了一个星期了,无法解决。
[attach]82[/attach]