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
浙公网安备 33010602011771号