Userform' SQL ile Veri Almak

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,389
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Dosyanızdan aldım; tam olarak aşağıdaki gibi ve "Pwd=Şifreniz" kısmını düzenlemeyi unutmayın.

Kod:
cn = _
"DRIVER={PostgreSQL ANSI};DATABASE=pw_pdks;SERVER=172.17.12.254;PORT=5432;" & _
"SSLMODE=prefer;UID=postgres;Pwd=[SIZE=5][COLOR=Red][B]Şifreniz[/B][/COLOR][/SIZE];ReadOnly=0;Protocol=6.4;FakeOidIndex=0;" & _
"ShowOidColumn=0;RowVersioning=0;ShowSystemTables=0;ConnSettings=;" & _
"Fetch=100;Socket=8192;UnknownSizes=0;MaxVarcharSize=254;" & _
"MaxLongVarcharSize=8190;Debug=0;CommLog=0;Optimizer=1;Ksqo=1;" & _
"UseDeclareFetch=0;TextAsLongVarchar=1;UnknownsAsLongVarchar=0;BoolsAsChar=1;" & _
"Parse=0;CancelAsFreeStmt=0;ExtraSysTablePrefixes=dd_;LFConversion=1;" & _
"UpdatableCursors=0;DisallowPremature=0;TrueIsMinus1=0;BI=0;ByteaAsLongVarBinary=0;" & _
"UseServerSidePrepare=0;LowerCaseIdentifier=0"
 
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
Run Time Error 3705
Nesne açık olduğunda işleme izin verilmez

.ActiveConnection = Nothing

de hata veriyor.

Hata verdiği yer kodun sonu o arada listviewe bir şey aktarmıyor sanırım bu hata giderilmeden aktarmazmı bilmiyorum kodu silip çalıştırdığımda hiç hata uyarısı çıkmıyor ama yine bir şeyde olmuyor.
 
Son düzenleme:
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
Yeni farkettim c\user\kullanıcı klasörünede 2 adet dosya atıyor mylog_4472 birde psqlodbc_4472 her denememde 2 tane kopyalıyor.
Bu hata psqlodbc versiyonu ile alakalı olabilirmi?
 
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
Listview' e Aktarma

Public baglan As New ADODB.Connection
Public liste As New ADODB.Recordset

Private Sub CommandButton1_Click()
Call mazeret
End Sub

Private Sub mazeret()
baglan.Open "DRIVER={PostgreSQL ANSI};DATABASE=pw_pdks;SERVER=172.17.12.254;PORT=5432;" & _
"SSLMODE=prefer;UID=postgres;Pwd=workpalas;ReadOnly=0;Protocol=6.4;FakeOidIndex=0;" & _
"ShowOidColumn=0;RowVersioning=0;ShowSystemTables=0;ConnSettings=;" & _
"Fetch=100;Socket=8192;UnknownSizes=0;MaxVarcharSize=254;" & _
"MaxLongVarcharSize=8190;Debug=0;CommLog=0;Optimizer=1;Ksqo=1;" & _
"UseDeclareFetch=0;TextAsLongVarchar=1;UnknownsAsLongVarchar=0;BoolsAsChar=1;" & _
"Parse=0;CancelAsFreeStmt=0;ExtraSysTablePrefixes=dd_;LFConversion=1;" & _
"UpdatableCursors=0;DisallowPremature=0;TrueIsMinus1=0;BI=0;ByteaAsLongVarBinary=0;" & _
"UseServerSidePrepare=0;LowerCaseIdentifier=0"
Set liste = baglan.Execute("SELECT " & _
" sicil.sicilno, sicil.barkod, sicil.adi, sicil.soyadi, " & _
" mazeretler.mazeretturu, mazeretler.tarih " & _
"FROM public.mazeretler " & _
" inner join public.sicil on (sicil.idnum = mazeretler.sicilid) " & _
"WHERE " & _
" (sicil.sicilno = '" & TextBox1 & "') AND " & _
" (mazeretler.mazeretturu = " & TextBox2 & ") AND " & _
" (mazeretler.tarih >= '" & TextBox3 & "') ")
Range("A1").CopyFromRecordset liste
baglan.Close
End Sub


Böyle bir kod oluşturdum

Range("A1").CopyFromRecordset liste kaydettiği verileri listviewe nasıl alırız ?
 
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
Public baglan As New ADODB.Connection
Public liste As New ADODB.Recordset

Private Sub CommandButton1_Click()
Call mazeret
End Sub

Private Sub mazeret()
baglan.Open "DRIVER={PostgreSQL ANSI};DATABASE=pw_pdks;SERVER=172.17.12.254;PORT=5432;" & _
"SSLMODE=prefer;UID=postgres;Pwd=workpalas;ReadOnly=0;Protocol=6.4;FakeOidIndex=0;" & _
"ShowOidColumn=0;RowVersioning=0;ShowSystemTables=0;ConnSettings=;" & _
"Fetch=100;Socket=8192;UnknownSizes=0;MaxVarcharSize=254;" & _
"MaxLongVarcharSize=8190;Debug=0;CommLog=0;Optimizer=1;Ksqo=1;" & _
"UseDeclareFetch=0;TextAsLongVarchar=1;UnknownsAsLongVarchar=0;BoolsAsChar=1;" & _
"Parse=0;CancelAsFreeStmt=0;ExtraSysTablePrefixes=dd_;LFConversion=1;" & _
"UpdatableCursors=0;DisallowPremature=0;TrueIsMinus1=0;BI=0;ByteaAsLongVarBinary=0;" & _
"UseServerSidePrepare=0;LowerCaseIdentifier=0"
Set liste = baglan.Execute("SELECT " & _
" sicil.sicilno, sicil.barkod, sicil.adi, sicil.soyadi, " & _
" mazeretler.mazeretturu, mazeretler.tarih " & _
"FROM public.mazeretler " & _
" inner join public.sicil on (sicil.idnum = mazeretler.sicilid) " & _
"WHERE " & _
" (sicil.sicilno = '" & TextBox1 & "') AND " & _
" (mazeretler.mazeretturu = " & TextBox2 & ") AND " & _
" (mazeretler.tarih >= '" & TextBox3 & "') ")
With liste

Do While Not .EOF
DoEvents
Set itm = ListView1.ListItems.Add(Text:=.Fields(0))
itm.SubItems(1) = .Fields(1)
itm.SubItems(2) = .Fields(2)
itm.SubItems(3) = .Fields(3)
itm.SubItems(4) = .Fields(4)
itm.SubItems(5) = .Fields(5)
.movenext
Loop



Set liste = Nothing
baglan.Close
Set baglan = Nothing
End With
End Sub


bu şekilde düzenledim sorunum kalmadı listviewe aktarıyorum artık ama bilmiyorum arada lüzumsuz kod varmı?
 
Üst