我在ACCESS的编程中...出现一个问题.我定义一个数组...DIM DAY(5) AS STRING在程序中.我直接书写DAY(1)...DAY(2).....没有问题...当我定义一个变量I.来对这个数组进行循环的时候:
DIM I AS INTEGER
dim day(5) as string
FOR I=1 TO 5 STEP 1
If Not IsNull(Tb![day(i)]) Then 在这里..DAY(为数字)不出错.DAY(I) 出错了...
语句块....
end if
next
我想请教一下是不是我书写上有问题.我应该如何书写...我将DAY(I)代入查询中也出错...问题出在哪里!!!!苦闷!!!!
DIM I AS INTEGER
dim day(5) as string
FOR I=1 TO 5 STEP 1
If Not IsNull(Tb![day(i)]) Then 在这里..DAY(为数字)不出错.DAY(I) 出错了...
语句块....
end if
next
我想请教一下是不是我书写上有问题.我应该如何书写...我将DAY(I)代入查询中也出错...问题出在哪里!!!!苦闷!!!!
If Not IsNull(Tb![day5]) Then
改成了:
IF NOT ISNULL("TB!DAY"&I) THEN
程序可以进行.只是结果无法正确的判断.执行原程序.DAY5为空的...换成现在的书写方式得出的结果却是不为空的...
重新定义数组变量名称
dim iDay(5) as string
dim i
for i=0 TO 4
If Not IsNull(Tb![iDay(i)]) Then
......
end if
next i
我提取的是数据库的列名.所以无法重新定义数组名称...而且我现在已经取消定义数组...只设定了一个变量I.用来对数据库列名DAY1-DAY5之间的循环.但是还是无法正常的将变量与列名相连接..
我按兄台的方法进行了修改.判断结果是错误的...但程序可以顺利运行.我把我写的这段原程序放上来.给大家看看吧.
Dim i As String
i = 5
If Not IsNull(Tb![day(i)]) Then
Me.lblDay5.Caption = "day5"
Me.lblDay4.Caption = "day4"
Me.lblDay3.Caption = "day3"
Me.lblDay2.Caption = "day2"
Me.lblDay1.Caption = "day1"
End If
按上面写的这段是无法执行程序的...出错语句就是If Not IsNull(Tb![day(i)]) Then上面.
If Not IsNull(Tb![day5]) Then
Me.lblDay5.Caption = "day5"
Me.lblDay4.Caption = "day4"
Me.lblDay3.Caption = "day3"
Me.lblDay2.Caption = "day2"
Me.lblDay1.Caption = "day1"
End If
按这个的写法...可以运行程序.结果也正确.DAY5是为空的.不会在报表上打印任何一个标签名称.
Dim i As String
i = 5
If Not IsNull(Tb.Fields(day(i)).Value) Then
Me.lblDay5.Caption = "day5"
Me.lblDay4.Caption = "day4"
Me.lblDay3.Caption = "day3"
Me.lblDay2.Caption = "day2"
Me.lblDay1.Caption = "day1"
End If
按您的修改方法.我对程序做了如上的修改.程序可以运行.但是却打印出了5个标签...似乎没有去判断数据库中的列....
if IsNull(Tb.Fields(day(i)).Value)=false then
debug.print "day" & i+1
end if
next i
刚我对程序做了进一步的修改:
Dim i As String
i = 5
If Not IsNull(Tb.Fields("day"&i)) Then
Me.lblDay5.Caption = "day5"
Me.lblDay4.Caption = "day4"
Me.lblDay3.Caption = "day3"
Me.lblDay2.Caption = "day2"
Me.lblDay1.Caption = "day1"
End If
程序可以顺利的运行且结果正确.其中VALUE好像可省略不写.非常感谢~您将得到您应得的分数.
至于上面的程序.因为我是初学的原因...不能完全看懂:
for i=0 to 4
if IsNull(Tb.Fields(day(i)).Value)=false then :判断DAY(I)为空是否错误.如果错误则运行下面的语句块.
debug.print "day" & i+1 :这句我看不懂...DUBUG在这里起到个什么作用?
end if
next i