Access交流中心

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

如何判断特定的字段是否存在?

五十不学艺  发表于:2011-10-20 21:50:52  
复制

用列表框多选字段自动生成的查询表,如何判断特定的字段是否存在?

如:自动生成的查询表"费用表"中,判断字段"收费日期"是否存在,只判断这一个字段.

 

Top
丘山 发表于:2011-10-20 22:38:46
vba-->dao

dbaseIIIer 发表于:2011-10-20 23:22:07

自动生成的查询表"费用表"

 

是啥意思?  已经是个表? 还是只是个查询? 反正都差不多的,

 

1a. 是个表的话  ... Set t=currentdb().tabledefs("费用表")

 

1b. 是个查询的话... Set t=currentdb().querydefs("费用表")

 

1c. 是个记录集的话..... set t = 你的记录集

 

 

for each f in t.fields

      if f.Name="收费日期" then msgbox "字段存在!"

next



五十不学艺 发表于:2011-10-21 02:23:15
问题没解决,总是提示"fields"缺少对象.点击下载此附件

王樵民 发表于:2011-10-21 06:49:35

可增加红色部分

Private Sub Command10_Click()
Dim db As Database
Dim qdf As QueryDefs
Set db = CurrentDb
s2 = "select "
For i = 0 To Me.List1.ListCount - 1
s2 = s2 & Me.List1.Column(0, i) & ","
Next i
'如果收费日期在s2中不存在,就加上收费日期
If InStr(1, s2, "收费日期") = 0 Then
 s2 = s2 & "收费日期" & ","
End If
s2 = Mid(s2, 1, Len(s2) - 1) & " from 费用表查询"
If s2 <> "select from 费用表查询" Then
 On Error Resume Next
 DoCmd.DeleteObject acQuery, "自动生成的查询"
 Set qdf = db.CreateQueryDef("自动生成的查询", s2)
 DoCmd.OpenQuery "自动生成的查询"
End If
Set db = Nothing
End Sub



五十不学艺 发表于:2011-10-21 07:48:47
谢谢王老师.

五十不学艺 发表于:2011-10-21 12:41:37
请教王老师,如果只是在后面判断一下该如何做。

五十不学艺 发表于:2011-10-21 15:24:16

问题解决了,谢谢王老师

'如果收费日期在s2中不存在,就加上收费日期
If InStr(1, s2, "收费日期") = 0 Then
 s2 = s2 & "收费日期" & ","
End If

其中If InStr(1, s2, "收费日期") = 0 Then用= false 也能运行,问一下有区别吗?



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