ADODB Sogulamaları ve Rapor şekilleri hakkında

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Birazdan ekleyeceğim çalışmada;
1) Uf_SycTakip Userformu Combobox1 de veri seçili değil iken Uf_Ara Userformu çağrılıp listboxundan isim seçilince Hata veriyor sebebi nedir?

2) Uf_SycTakip Userformu Listbox1 e raporlaan veriler Amerikan (ay/gün/yıl) Sistemi bunu Türk sistemine (gün/ay/yıl) ) göre nasıl revize ederiz?

3) Uf_Ara Userformunun textboxundaki metni içeren veriler sorgulanarak listboxa gelmektedir. Ancak ı,İ karakterlerini kabul etmiyor ne yapılabilir?

http://www.excel.web.tr/attachment.php?attachmentid=51877&stc=1&d=1226592476
 

Ekli dosyalar

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Aşağıdaki kodun sonuna bir ilave ile birinci aşamayı çözdüm;

Kod:
Sub adbKset_Tarihler_Aç()
.........................
[B][COLOR=Red]  Else
    MsgBox "Bağlantı Hatası Kontrol Ediniz", vbInformation, "Bilgi"
  End If[/COLOR][/B]
  With ListBox1
    If .ListCount > 0 Then
      For i = 0 To .ListCount - 1
        .List(i, 0) = Format(.List(i, 0), "dd.mm.yyyy")
        If .List(i, 1) <> Null Then .List(i, 1) = Format(CDbl(.List(i, 1)), "#,##0.0000")
        If .List(i, 2) <> Null Then .List(i, 2) = Format(CDbl(.List(i, 2)), "#,##0.0000")
        If .List(i, 3) <> Null Then .List(i, 3) = Format(CDbl(.List(i, 3)), "#,##0.0000")
      Next i
    End If
  End With
End Sub
kırmızı satırların altın siyah satırları eklediğimiz zaman tarih formatımı istediğim hale getirdim.

Ancak listboxın 1,2,3 sütunlarındaki değerlerin dört basamak duyarlı olmasını istiyorum. Tutturamadım. Yardımlarınızı rica ediyorum.

Ayrıca for next yerine sorgu sonucu olarak bu şekilde düzenlenebilir mi ?

Saygılarımla.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
2 soruyu herhalde anlatamadım; kırmızı satırları yeşil satrıların altına sql dilinde yazıp
for döngüsünü iptal etmek mümkün mü?

Kod:
Sub adbKset_Tarihler_Aç()
  Set CSfData = CKtp_Bu.Sheets("DATA")     'Verilerin alınacağı sayfa.
  Dim sqlFrom$, sqlBasl$, sqlSorg$, sqlSatr$, sqlGrup$

[COLOR=DarkGreen]  sqlBasl = "Tarihi, Aktif_Değeri, Reaktif_Değeri, Kapasitif_Değeri, Aciklama"
  sqlGrup = "Sayac_No, Adi_Soyadi, Mevkii, Tarihi, Aktif_Değeri, Reaktif_Değeri, Kapasitif_Değeri, Aciklama"
  sqlFrom = "[" & CSfData.Name & "$" & "A2:H1800" & "]"
  sqlSorg = "Sayac_No = " & Me.ComboBox1.Column(0)                                       'Sayaç Numarası, Combobox1'e eşit olan kayıtlar[/COLOR]
[COLOR=DarkGreen]  sqlSorg = sqlSorg & " AND UCase(Adi_Soyadi) Like '" & UCase(Me.TextBox1.Text) & "'"    ' ve Adı soyadı,  textbox1'i içeren kayıtlar
  sqlSorg = sqlSorg & " AND Tarihi IS NOT NULL"
  sqlSatr = "SELECT DISTINCT " & sqlBasl & " FROM " & sqlFrom & " WHERE " & sqlSorg
  sqlSatr = sqlSatr & " GROUP BY  " & sqlGrup & " ORDER BY Tarihi DESC"[/COLOR]

  'Adob RecordSet Sorgulaması
  If Err = 0 Then
    Set adbKset = CreateObject("ADODB.Recordset")
    With adbKset
      .ActiveConnection = adbBagl
      .CursorLocation = adUseServer
      .CursorType = adOpenKeyset
      .LockType = adLockOptimistic
      .Source = sqlSatr
      .Open
      '***********************************************************************
      ListBox1.Clear
      Label15.Caption = Space(5) & .RecordCount & " Adet Okuma Kaydı bulundu"
      If .RecordCount > 0 Then
        With ListBox1
          .ColumnCount = adbKset.Fields.Count
          .ColumnWidths = "60;60;60;60;100"
          .Column = adbKset.GetRows
          .TextAlign = fmTextAlignRight
'          .SpecialEffect = fmSpecialEffectFlat
        End With 'ListBox1
      End If
    If CBool(.State And adStateOpen) = True Then .Close:  Set adbKset = Nothing
    End With
  Else
    MsgBox "Bağlantı Hatası Kontrol Ediniz", vbInformation, "Bilgi"
  End If
  With ListBox1
    If .ListCount > 0 Then
      For i = 0 To .ListCount - 1
[COLOR=Red]        If .List(i, 0) <> "" Then .List(i, 0) = Format(.List(i, 0), "dd.mm.yyyy")        ' tarihi
        If .List(i, 1) <> "" Then .List(i, 1) = Format(.List(i, 1), "#,##0.0000")  '[/COLOR][COLOR=DarkGreen]Aktif_Değeri[/COLOR]
[COLOR=Red]        If .List(i, 2) <> "" Then .List(i, 2) = Format(.List(i, 2), "#,##0.0000") '[/COLOR][COLOR=DarkGreen]Reaktif_Değeri[/COLOR]
[COLOR=Red]        If .List(i, 3) <> "" Then .List(i, 3) = Format(.List(i, 3), "#,##0.0000")[/COLOR] '[COLOR=DarkGreen], Kapasitif_Değeri[/COLOR]
      Next i
    End If
  End With
End Sub
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
güncel. yardım ederseniz sevinirm.
 
Üst