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
Csv objRecordset.MoveNext和loop之间的区别?_Csv_Ms Access_Vba_Ado - Fatal编程技术网

Csv objRecordset.MoveNext和loop之间的区别?

Csv objRecordset.MoveNext和loop之间的区别?,csv,ms-access,vba,ado,Csv,Ms Access,Vba,Ado,我的代码读取.csv文件(逗号分隔文件)的行,并将每个值分配给一个局部变量。在完成一些逻辑并将值存储在表中之后,我读入.csv文件的下一行并重复该过程。我的问题是,与循环相比,objRecordset.MoveNext在做什么。这是我的代码,其中一些代码已被删除,以关注循环和objrecordset.MoveNext objconnection.Open 'connection string' objRecordset.Open "SELECT * FROM [" & ThisFileN

我的代码读取.csv文件(逗号分隔文件)的行,并将每个值分配给一个局部变量。在完成一些逻辑并将值存储在表中之后,我读入.csv文件的下一行并重复该过程。我的问题是,与循环相比,objRecordset.MoveNext在做什么。这是我的代码,其中一些代码已被删除,以关注循环和objrecordset.MoveNext

objconnection.Open 'connection string'
objRecordset.Open "SELECT * FROM [" & ThisFileName & "]", objconnection, adOpenStatic, adLockOptimistic, adCmdText 'select all text lines from the file

Do While Not objRecordset.EOF 'read lines until end of file

'Clear out all the local objects so prior values aren't left there
    SampleName = ""
    DateTimeAcquired = ""
    Analyte = ""
    Concentration = ""
    Units = ""

   'reads in each value according to column name and save to variable'
      SampleName = objRecordset.Fields("Sample Name").Value
      DateTimeAcquired = objRecordset.Fields("Date and Time Acquired").Value
      Analyte = objRecordset.Fields("Element Full Name").Value
      Concentration = objRecordset.Fields("Concentration").Value
      Units = objRecordset.Fields("Units").Value

'Logic done on variables'
        objRecordset.MoveNext
Loop  

我使用的是Access 2010 VBA

对象记录集。MoveNext
有两个用途

  • 作为退出条件

  • 移动到下一个记录


  • 如果没有
    objRecordset.MoveNext
    ,则循环将无限继续,因为它不会到达
    objRecordset.EOF
    ,而是停留在
    相同的记录上

    如果省略
    objRecordset.MoveNext
    ,则将永远不会到达记录集的末尾,因此将有一个连续循环。你为什么要做这些工作?您可以使用SQL从CSV更新。如何使用SQL从.CSV导入?例如