| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 996 人关注过本帖
标题:如何设置字段名称为一个合法有效的数组呢?
只看楼主 加入收藏
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
结帖率:84.62%
收藏
 问题点数:0 回复次数:11 
如何设置字段名称为一个合法有效的数组呢?

如何设置字段名称为一个合法有效的数组呢?

能否用Rst.Fields(i)数组呢?为:Rst.Fields(0)、Rst.Fields(1)、Rst.Fields(2)、。。。来代替Rst("z(" & h & ")")呢?


为什么结果会是0呢?



Private Sub Command2_Click()
Dim a
Dim i, h As Integer

If Not Rst.EOF() Then
For i = 1 To Rst.RecordCount
For h = 1 To 9
If IsNull(Rst("z(" & h & ")").Value) Then
If Rst.Fields("z(" & h & ")").Value = "银行存款" Then
a = a + Val(Rst.Fields("j(" & h & ")").Value)

End If
End If
Next h
Rst.MoveNext
Next i

Text4.Text = Val(a)

End If

End Sub

搜索更多相关主题的帖子: 名称 字段 合法 
2007-08-02 22:27
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
收藏
得分:0 

这样改,如下:

Dim a
Dim i, h As Integer

If Not Rst.EOF() Then
For i = 1 To Rst.RecordCount
For h = 1 To Rst.Fields.Count
If Rst.Fields(h).Value = "银行存款" Then
a = a + Val(Rst.Fields(h + 2).Value)

End If
Next h
Rst.MoveNext
Next i

Text4.Text = Val(a)

End If

结果为:无效使用NULL?


再插入:
For h = 1 To Rst.Fields.Count
If IsNull(Rst.Fields(h).Value) Then

If Rst.Fields(h).Value = "银行存款" Then
a = a + Val(Rst.Fields(h + 2).Value)

End If
End If

结果又找不到项目,





2007-08-02 23:13
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 

下标都是从0开始的.


我的msn: myfend@
2007-08-02 23:38
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
收藏
得分:0 

db1.mdb表FL1里共有2+4*9=38个字段,如下:

n zy
z(1) m1 j(1) d1
z(2) m2 j(2) d2
...
...
z(9) m9 j(9) d9

要求是:当某个记录里含有“银行存款”的z(I)对应的j(I)的值累计相加输出到TEXT4。TEXT里去!

2007-08-03 21:50
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
收藏
得分:0 
能否用Rst.Fields(i)数组呢?为:Rst.Fields(0)、Rst.Fields(1)、Rst.Fields(2)、。。。来代替Rst("z(" & h & ")")呢?
2007-08-03 21:51
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
收藏
得分:0 

z(I)是文本型,J(I)为数字型的!

下标从0开始的?


2007-08-03 21:55
hai99
Rank: 1
等 级:新手上路
帖 子:146
专家分:0
注 册:2007-7-2
收藏
得分:0 
这个也没解呀?和我的一样啊
2007-08-03 23:31
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
收藏
得分:0 
用select case 循环语句行不行呢?

2007-08-04 11:53
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
收藏
得分:0 

有朋友提示代码如下:

Dim strsql As String
Dim connnn As New ADODB.Connection
Dim i As Long
Dim Total As Long

Total = 0
For i = 1 To 9
strsql = "Select Sum(j" & i & ") as Total where z(" & i & ")='银行存款'"
Total = Total + conn.Execute(strsql)(0)
Next
conn.Close
Set connnn = Nothing
Text4.Text = Val(Total)

执行时出现:

实时错误‘-214。。。。,。。。’
SELECT子句中包含一个保留字、拼写错误或丢失的参数、或标点符号不正确!

2007-08-04 12:05
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
收藏
得分:0 

请看我全部代码如下:
Option Explicit
Private conn As ADODB.Connection
Private Rst As New ADODB.Recordset

Private Sub Command1_Click()
Dim i, j, b As Single
Dim a
If Not Rst.EOF() Then
For i = 1 To Rst.RecordCount
a = a + Val(Rst.Fields("j10").Value)
b = b + Val(Rst.Fields("d10").Value)
Rst.MoveNext
Next i
Text1.Text = Val(a)
Text2.Text = Val(b)
If Text1.Text <> Text2.Text Then
MsgBox "请检查会计凭证!"
End If
End If
End Sub

Private Sub Command2_Click()


Dim strsql As String
Dim i As Long
Dim Total As Long

Total = 0

For i = 1 To 9
strsql = "Select Sum(j" & i & ") from fl2 where z" & i & "='银行存款' GROUP BY Z" & i

If conn.Execute(strsql).EOF = False Then
Total = Total + conn.Execute(strsql)(0)
End If
Next
conn.Close
Set conn = Nothing



Text4.Text = Val(Total)
End Sub


Private Sub Form_Load()
Dim ConString As String
ConString = "Provider=Microsoft.Jet.OleDb.4.0;Persist Security Info = False;" _
& "Data Source =" & App.Path & "\db1.mdb;Jet OleDb:"


Set conn = CreateObject("ADODB.Connection")
With conn
.ConnectionString = ConString
.Open
End With

Rst.CursorLocation = adUseClient
Rst.Open "Select * From fl2", conn, adOpenKeyset, adLockPessimistic, adCmdText

End Sub

执行后,结果:至少一个参数没有被指定值!

黄条指在:If conn.Execute(strsql).EOF = False Then

2007-08-06 20:38
快速回复:如何设置字段名称为一个合法有效的数组呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016785 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved