Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access vba-for循环中的If-else语句_Ms Access_Vba - Fatal编程技术网

Ms access vba-for循环中的If-else语句

Ms access vba-for循环中的If-else语句,ms-access,vba,Ms Access,Vba,我想添加以下内容,删除包含0的行 If Cells(intFile, "CU") = "0" Then Sheet1.Rows(r).EntireRow.Delete End If 下面是我的代码 If CDate(rst(3)) >= Date Then For intCount = 0 To rst.Fields.Count - 1 strHold = strHold &

我想添加以下内容,删除包含0的行

    If Cells(intFile, "CU") = "0" Then           
        Sheet1.Rows(r).EntireRow.Delete    
    End If    
下面是我的代码

   If CDate(rst(3)) >= Date Then

       For intCount = 0 To rst.Fields.Count - 1
           strHold = strHold & rst(intCount).Value & "|"
当前在“Cells”(单元格)上
ElseIf单元格(intFile,“CU”)=“0”,然后
我得到编译错误:子或函数未定义。
我应该放什么来代替
单元格


我的参考资料:

这里的问题是,VisualBasic有许多“风格”,它们不能互换

您的应用程序正在MSAccess中运行,并且它将具有特定于该环境的对象、函数等。
单元格
对象特别适用于MS Excel环境,因此Access VBA不了解什么是
单元格
对象

(您提到的文档是关于VB.Net的语法的,但是您看到的特定主题在所有这些不同版本的“Visual Basic”中都是一样的.但从该网页上确实可以看出,
If
语句中的
Then
在VB.Net中是可选的关键字,而在VBA中是必需的,所以即使是这样一个基本的编码也有一个区别。)

如果您从更改代码

If CDate(rst(3)) >= Date Then
ElseIf Cells(intFile, "CU") = "0" Then
    Sheet1.Rows(r).EntireRow.Delete
将来

如果CDate(rst(3))>=日期和rst(98)0,则

我相信您将做您开始要做的事情,即排除今天之前第4个字段(
3
,因为零基数)的所有记录,也排除第99个字段为0的所有记录。

这里的问题是Visual Basic有许多“味道”,它们是不能互换的

您的应用程序正在MSAccess中运行,并且它将具有特定于该环境的对象、函数等。
单元格
对象特别适用于MS Excel环境,因此Access VBA不了解什么是
单元格
对象

(您提到的文档是关于VB.Net的语法的,但是您看到的特定主题在所有这些不同版本的“Visual Basic”中都是一样的.但从该网页上确实可以看出,
If
语句中的
Then
在VB.Net中是可选的关键字,而在VBA中是必需的,所以即使是这样一个基本的编码也有一个区别。)

如果您从更改代码

If CDate(rst(3)) >= Date Then
ElseIf Cells(intFile, "CU") = "0" Then
    Sheet1.Rows(r).EntireRow.Delete
将来

如果CDate(rst(3))>=日期和rst(98)0,则

我相信您将按照计划进行操作,即排除今天之前第4个字段(
3
由于零基数)的所有记录,也排除第99个字段为0的所有记录。

函数调用将与传递的参数一起分析(搜索重载概念)。我猜您使用错误的参数集调用了正确的函数。这是[access vba]还是[excel vba]?您使用的是MSAccess VBA的
CurrentDB
,以及Excel VBA的
Cells
。@YowE3K似乎是对的。很可能您试图使用Excel的Cells函数而没有引用Excel。@YowE3K由于顶部的选项Compare Database语句,您可以判断它是access,用户需要添加引用,然后完全限定Excel对象-看起来用户正在打开csv文件,但不是使用Excel打开,而是将其作为文本文件打开:打开strFilePath以输出为#intfiles分析函数调用的可能重复项以及传递的参数(搜索重载概念)。我猜您使用错误的参数集调用了正确的函数。这是[access vba]还是[excel vba]?您使用的是MSAccess VBA的
CurrentDB
,以及Excel VBA的
Cells
。@YowE3K似乎是对的。很可能您试图使用Excel的Cells函数而没有引用Excel。@YowE3K由于顶部的选项Compare Database语句,您可以判断它是access,用户需要添加引用,然后完全限定Excel对象-而且看起来用户正在打开一个csv文件,但不是使用Excel打开,而是将其作为文本文件打开:打开strFilePath以输出为#intfiles可能重复的