Na delovnem listu imam uvoz podatkov , ter sql stavek:
Sub Makro1()
'
' Makro1 Makro
' Makro ustvaril: xxxxxx, dne 31.8.2007
'
'
Range("A1").Select
With Selection.QueryTable
.Connection = Array( _
"OLEDB;Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=PIS;Data Source=Streznik\2k;Use Procedur" _
, _
"e for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=xxxxx;Use Encryption for Data=False;Tag with column collat" _
, "ion when possible=False")
.CommandType = xlCmdSql
.CommandText = Array( _
"exec obracun '2007-08-28','2007-08-28','4'")
.Refresh BackgroundQuery:=False
End With
End Sub
Na ta način kličem zunanjo funkcijo, ki mi potem napolni podatke na izbran list.
Kako naj pokličem tole proceduro obracun , da bi mi datume vlekla iz izbranega polja na listu 1.ž
Imam tudi TextBox1 in TextBox2 kam bi zapisal datuma od ,do!
Procedura OBRACUN je stor procedura na SQL strežniku.
Lahko bi jo poklical tudi direkt iz makra?
Obracun TextBox1.value,textBox2.value,'4' ???
Kaka je sintaksa takega klica?
Tole vem narediti iz Delphija iz excela pa mi nekak ne rata
Hvala za pomoč
Uvoz podatkov,SQL - klic store procedur
Pozdravljeni,
Preprosto je potrebno samo malce preurediti posneti makro tako, da sprejme dva vhodna parametra:
In potem lahko takšno proceduro kličete kjerkoli preprosto s klicem:
Ali pa sevda tudi iz obrazca, kot:
Preprosto je potrebno samo malce preurediti posneti makro tako, da sprejme dva vhodna parametra:
Koda: Izberi vse
Sub IzvediSQL(StatDate As Date, EndDate As Date)
Range("A1").Select
With Selection.QueryTable
.Connection = Array("OLEDB;Provider=SQLOLEDB.1;Integrated Security=SSPI;", _
"Persist Security Info=True;Initial Catalog=PIS;Data Source=Streznik\2k;", _
"Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;", _
"Workstation ID=xxxxx;Use Encryption for Data=False;", _
"Tag with column collation when possible=False")
.CommandType = xlCmdSql
.CommandText = Array("exec obracun '" & Format(StartDate, "yyyy-mm-dd") & "'", _
"'" & Format(EndDate, "yyyy-mm-dd") & "','4'")
.Refresh BackgroundQuery:=False
End With
End Sub
Koda: Izberi vse
IzvediSQL CDate("28.08.2007"), CDate("28.08.2007")
Koda: Izberi vse
IzvediSQL CDate(Text1.Text), CDate(Text2.Text)
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Pravite, da bi to znali narediti iz Delphija ... No kakorkoli.
Če imate vnosna polja na listu1 potem morate to povedati tudi VBA-ju, ali kako pak :
Če imate vnosna polja na listu1 potem morate to povedati tudi VBA-ju, ali kako pak :
Koda: Izberi vse
IzvediSQL CDate(List1.Text1.Text), CDate(List1.Text2.Text)
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
V Delphi koda mi laufa, je mal drugačna sintaksa, pa nima veze sedaj to tu.admin napisal/-a:Pravite, da bi to znali narediti iz Delphija ... No kakorkoli.
Če imate vnosna polja na listu1 potem morate to povedati tudi VBA-ju, ali kako pak :Koda: Izberi vse
IzvediSQL CDate(List1.Text1.Text), CDate(List1.Text2.Text)
OK Hvala za pomoč, sem že odkril napako
lp