WinCC中访问CSV文件

创建功能块:

 


'***************************************************************************
'打开CSV文件的ADODB连接
'**************************************关闭CSV文件的ADODB连接*************************************


Function CSVCN_OPEN(CSV_CN,CSV_FN)
'用AODDB.Connection打开CSV文件连接'CSV_CN:AODDB.Connection对象,CSV_FN:CSV文件名("*.csv")
'连接成功返回1,文件CSV_FN不存在返回-2,指定路径不存返回-1,连接失败返回0;
Dim Result
Dim FSO
Dim ProjectDataPath
Dim CSV_FullName
On Error Resume Next
ProjectDataPath=HMIRuntime.ActiveProject.Path+ "\WinccDataFolder"
Set FSO=CreateObject("Scripting.FileSystemObject")


If FSO.FolderExists(ProjectDataPath) Then
    CSV_FullName=ProjectDataPath & "\" & CSV_FN
    If FSO.FileExists(CSV_FullName) Then
        Set CSV_CN=CreateObject("ADODB.Connection")
        CSV_CN.ConnectionString="Driver={Microsoft Text Driver (*.txt; *.csv)};Extensions=Asc,csv,tab,txt;Persist Security Info=True;DBQ=" & ProjectDataPath
        CSV_CN.Open

        If CSV_CN.State=1 Then

            Result=1
        Else
            Result=0
        End If
    Else
        Result=-2
    End If
Else
    Result=-1
End If
Set FSO=Nothing
CSVCN_OPEN=Result
End Function



'***************************************************************************
'关闭CSV文件的ADODB连接
'**************************************关闭CSV文件的ADODB连接*************************************
Sub CSVCN_CLOSE(CSV_CN)'关闭CSV文件的ADODB连接
On Error Resume Next
If CSV_CN.State=1 Then
    CSV_CN.Close
End If
Set CSV_CN=Nothing
End Sub

 

 

功能块调用,在WinCC按钮事件中调用:

Dim CSV_CN
Dim CSV_FN
On Error Resume Next

CSV_FN="CsvFileName.CSV"
If CSVCN_OPEN(CSV_CN,CSV_FN)=1 Then
    Set objR= CreateObject("ADODB.Recordset")
    SSQL="Select * from " & CSV_FN & " where ColHeadName='" & Trim("筛选内容") & "'"  'ColHeadName是待选择的列名
    ObjR.Open SSQL,CSV_CN,1,1
        If ObjR.RecordCount>0 Then 
            msgbox ObjR(0)  '弹窗显示第一列内对应筛选内容的数据
        End If
CSVCN_CLOSE(CSV_CN)
Set ObjR=Nothing 
end if

 

 

 

 

posted on 2025-04-04 15:08  老迈克  阅读(68)  评论(0)    收藏  举报

导航