bkocaman
Üye
- Katılım
- 21 Ağu 2007
- Mesajlar
- 3
- Puanları
- 1
- Yaş
- 40
winCC den M. Access e aktarım için VisualBasicScript Kullanımı
1. Bir Access database içersine(örneğin DATA.mdb) WINCC_DATA adında bir tablo ve ID, TagValue şeklinde iki değişken oluşturun.(ID otomatik sayı olsun)
2. ODBC yapılandırmasından "SampleDSN" adıyla oluşturduğunuz DATA.mdb dosyasını ilişkilendirin.
3.Aşağıdaki script'in bir butona bağlandığını düşünelim,Bu durumda WINCC de ki number tipli Tag1 değeri, Microsoft Access database WINCC_DATA tablosunda ki TagValue degerine aktarılıyor.
Problem;
1.Script içersindeki IgnValue degerini ObjValue veya StrValue yapmam ragmen string (karekter içeren) tipli aktaramadım sadece number tipli değerler aktarılabiliyor.
2.Tabloma TagValue2 diye bir ikinci değişken daha eklesem,Tag2 değerini aktarabilmek için scripte nasıl bir değişiklik yapılması gereklidir.
Dim objConnection
Dim strConnectionString
Dim lngValue
Dim strSQL
Dim objCommand
strConnectionString = "Provider=MSDASQL;DSN=SampleDSN;UID=;PWD=;"
lngValue = HMIRuntime.Tags("Tag1").Read
strSQL = "INSERT INTO WINCC_DATA (TagValue) VALUES (" & lngValue & ");"
Set objConnection = CreateObject("ADODB.Connection")
objConnection.ConnectionString = strConnectionString
objConnection.Open
Set objCommand = CreateObject("ADODB.Command")
With objCommand
.ActiveConnection = objConnection
.CommandText = strSQL
End With
objCommand.Execute
Set objCommand = Nothing
objConnection.Close
Set objConnection = Nothing
Çözüm;
1.Script içersindeki IgnValue degerini ObjValue veya StrValue yapmam ragmen string (karekter içeren) tipli aktaramadım sadece number tipli değerler aktarılabiliyor.
strSQL = "INSERT INTO WINCC_DATA (TagValue) VALUES (" & lngValue & ");"bu satır aşağıdaki şekilde değiştirilecek
strSQL = "INSERT INTO WINCC_DATA (TagValue) VALUES ('" & CStr(lngValue) & "');"
not: [ ' " (şeklinde tırnaktan önce kesme) ]
2.Tabloma TagValue2 diye bir ikinci değişken daha eklesem,Tag2 değerini aktarabilmek için scripte nasıl bir değişiklik yapılması gereklidir.
yazım1;
strSQL2="(TagValue,TagValue2)"
strSQL3="( '" & CStr(lngValue) & "','" & CStr(lngValue2) & "' )"
strSQL = "INSERT INTO WINCC_DATA"& strSQL2 &" VALUES "& strSQL3 &";"
yazım2;
'strSQL = "INSERT INTO WINCC_DATA (TagValue,TagValue2) VALUES ( '" & CStr(lngValue) & "','" & CStr(lngValue2) & "' );"
1. Bir Access database içersine(örneğin DATA.mdb) WINCC_DATA adında bir tablo ve ID, TagValue şeklinde iki değişken oluşturun.(ID otomatik sayı olsun)
2. ODBC yapılandırmasından "SampleDSN" adıyla oluşturduğunuz DATA.mdb dosyasını ilişkilendirin.
3.Aşağıdaki script'in bir butona bağlandığını düşünelim,Bu durumda WINCC de ki number tipli Tag1 değeri, Microsoft Access database WINCC_DATA tablosunda ki TagValue degerine aktarılıyor.
Problem;
1.Script içersindeki IgnValue degerini ObjValue veya StrValue yapmam ragmen string (karekter içeren) tipli aktaramadım sadece number tipli değerler aktarılabiliyor.
2.Tabloma TagValue2 diye bir ikinci değişken daha eklesem,Tag2 değerini aktarabilmek için scripte nasıl bir değişiklik yapılması gereklidir.
Dim objConnection
Dim strConnectionString
Dim lngValue
Dim strSQL
Dim objCommand
strConnectionString = "Provider=MSDASQL;DSN=SampleDSN;UID=;PWD=;"
lngValue = HMIRuntime.Tags("Tag1").Read
strSQL = "INSERT INTO WINCC_DATA (TagValue) VALUES (" & lngValue & ");"
Set objConnection = CreateObject("ADODB.Connection")
objConnection.ConnectionString = strConnectionString
objConnection.Open
Set objCommand = CreateObject("ADODB.Command")
With objCommand
.ActiveConnection = objConnection
.CommandText = strSQL
End With
objCommand.Execute
Set objCommand = Nothing
objConnection.Close
Set objConnection = Nothing
Çözüm;
1.Script içersindeki IgnValue degerini ObjValue veya StrValue yapmam ragmen string (karekter içeren) tipli aktaramadım sadece number tipli değerler aktarılabiliyor.
strSQL = "INSERT INTO WINCC_DATA (TagValue) VALUES (" & lngValue & ");"bu satır aşağıdaki şekilde değiştirilecek
strSQL = "INSERT INTO WINCC_DATA (TagValue) VALUES ('" & CStr(lngValue) & "');"
not: [ ' " (şeklinde tırnaktan önce kesme) ]
2.Tabloma TagValue2 diye bir ikinci değişken daha eklesem,Tag2 değerini aktarabilmek için scripte nasıl bir değişiklik yapılması gereklidir.
yazım1;
strSQL2="(TagValue,TagValue2)"
strSQL3="( '" & CStr(lngValue) & "','" & CStr(lngValue2) & "' )"
strSQL = "INSERT INTO WINCC_DATA"& strSQL2 &" VALUES "& strSQL3 &";"
yazım2;
'strSQL = "INSERT INTO WINCC_DATA (TagValue,TagValue2) VALUES ( '" & CStr(lngValue) & "','" & CStr(lngValue2) & "' );"
Moderatör tarafında düzenlendi: