Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

请问各位老师,数组以及窗体控件的应用问题

huashanshihu  发表于:2015-11-22 23:45:27  
复制

 

Private Sub Command71_Click()
Dim 数组(3) As Control, i As Integer

数组(0) = Text姓名                                           ‘text姓名,text年龄,text性别,都是窗体中的文本框控件,需要用户进行填写的数据,我想定义一个数组变量,

数组(1) = Text年龄                                             把数组变量定义 dim 数组(3)as control 控件类型的数组变量,但是好像行不通,调试显示错误信息,“对象变量,
数组(2)=text性别                                              或with块变量未设置。“
For i = 0 To 2
    If IsNull(数组(i)) Then
    MsgBox "这儿的信息没有填写,请填写"
    数组(i).SetFocus
    End If
Next

End Sub

******************************************************后来来又尝试别的办法。

Private Sub Command71_Click()
Dim 数组(3) As String, i As Integer

数组(0) = Text姓名                                                  ‘text姓名,text年龄,text性别,都是窗体中的文本框控件,需要用户进行填写的数据,我想定义一个数组变量,原来尝试
数组(1) = Text年龄                                                      把数组变量定义 dim 数组(3)as control 控件类型的数组变量,但是好像行不通,但是改成了string类型,就可以了。
数组(0) = Text性别                                                       问题是数组变量应该是字符串,是不是赋值的时候应该加双引号的,加了双引号后就变成了普通的字符串了,不加的话
For i = 0 To 2                                                               这个变量可以代表窗体的文本框。
    If IsNull(数组(i)) Then
    MsgBox "这儿的信息没有填写,请填写"
    数组(i).SetFocus                                                          ’ 但是在这里,又出现错误了,在编译的时候就提示“无效限定符”的错误!
    End If
Next

End Sub

 

Top
缪炜 发表于:2015-11-23 08:36:50
方法二里,数组(0)=Text性别改成 数组(2)=Text性别

huashanshihu 发表于:2015-11-23 09:26:05

  缪老师,哪里不是问题的关键,数组(i).SetFocus  >>>>>>>>>>>>> ’ 但是在这里,又出现错误了,在编译的时候就提示“无效限定符”的错误!

在编译阶段就行不通,过程还没有实际运行呢。


 



缪炜 发表于:2015-11-23 09:46:07
数组(i).SetFocus   这句就是错的,没有这样的写法,获得焦点只有对控件有效

huashanshihu 发表于:2015-11-23 20:57:21
 我原来的计划就是想用数组变量来代替具体的控件来进行操作。

huashanshihu 发表于:2015-12-07 10:38:04

其实这个问题涉及对窗体控件的引用的问题,如果用数组来集中对窗体控件的引用,可以定义一个用窗体控件名称组成的字符串变量的数组,然后通过me.controls(数组())来引用

窗体的控件,还是自己对access的一些基本概念不了解而出现表达不清楚的问题。谢谢老师们的回答。



zhaoyoulong 发表于:2015-12-09 12:21:29

dim ctl as control

for each in me.controls

if ctl.name like "text*"  and (ctl.controltype=acTextBox or ctl.controltype=acComboBox) then'这里最好把要查的控件名称设成有统一的规律

if isnull(ctl.value) then 

MsgBox ctl.name & "的信息没有填写,请填写"

ctl.setfocus

exit sub

end if

next



总记录:6篇  页次:1/1 9 1 :