Aynı Tarihli Veri Varsa Işlem Yapmasın Ve Sql Col Sayısını Arttırma
#7
(19-10-2023, 01:39)dsezgin demiş ki:
(18-10-2023, 07:39)snapper demiş ki: Veri tablosunda ki tarih, yeni tabloda var ise işlem yapmasın istiyorum

Yeni tablo tarih alanı bos olmamalı.
dcount("*","[Yeni Tabloü","Format(Tarih,'yyyymmdd')=" & Format(tarih,"yyyymmdd"))

Visual Basic
  1. INSERT INTO [Yeni Tablo] ( Tarih, Veri )
  2. SELECT Format([tarih],"Short Date") AS Expr2, Sum(IIf([veri]>0,1,0)) AS Expr1
  3. FROM Veri
  4. WHERE (((DCount("*","[Yeni Tablo]","Format(Tarih,'yyyymmdd')=" & Format([tarih],"yyyymmdd")))=0))
  5. GROUP BY Format([tarih],"Short Date")


Ustam,emeğinize sağlık ama ben ekleme sorgusu oluşturmak istemiyorum. Eğer var ise tarihli veri var diyecek yoksa modulü çalıştıracak. Aşağıdaki gibi birşey olabilir mi?


Visual Basic
  1. Dim rs As New ADODB.Recordset
  2.  
  3. rs.Open "Yeni Tablo", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
  4.  
  5. If DCount("*", "veri", "[tarih]=" & [tarih]) > 0 Then
  6.  
  7. MsgBox "Eklemek istediğiniz tarihli veri bulunmaktadır.", vbOKOnly, "Bilgi!"
  8.  
  9.  
  10. Else
  11.  
  12. Call ıslem1
  13.  
  14. end if





  Alıntı
Bu mesajı beğenenler:
#8
(19-10-2023, 12:46)snapper demiş ki: Ustam,emeğinize sağlık ama ben ekleme sorgusu oluşturmak istemiyorum. Eğer var ise tarihli veri var diyecek yoksa modulü çalıştıracak. Aşağıdaki gibi birşey olabilir mi?

https://www.access-sql.com/Konu-Ayni-Tar...#pid133242Mesaj 6yi düşündüğünüz gibi oluşturabilirsiniz

Form uzerinden tek tarih girilerek,
Visual Basic
  1. Private Sub Tarih_afterupdate()
  2. if dcount("*","[Yeni Tablo]","Format(Tarih,'yyyymmdd')=" & Format(me.Tarih,"yyyymmdd"))>0 then
  3. MsgBox "Eklemek istediğiniz tarihli veri bulunmaktadır.", vbOKOnly, "Bilgi!"
  4. else
  5. Call ıslem1
  6. end if


Veri cagirilarak
Visual Basic
  1. Dim rs As New ADODB.Recordset
  2. rs.Open "Veri", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
  3. if rs.recorcount=0 then exit sub
  4. do until rs.eof
  5. If dcount("*","[Yeni Tablo]","Format(Tarih,'yyyymmdd')=" & Format(rs!Tarih,"yyyymmdd"))>0 Then
  6. MsgBox "Eklemek istediğiniz tarihli veri bulunmaktadır.", vbOKOnly, "Bilgi!"
  7. else
  8. currentdb.execute "INSERT INTO [Yeni Tablo] ( Tarih, Veri )
  9. SELECT Format([tarih],'Short Date') AS Expr2, Sum(IIf([veri]>0,1,0)) AS Expr1
  10. FROM Veri
  11. WHERE (((DCount('*',"[Yeni Tablo]','Format(Tarih,'yyyymmdd')=' & Format([tarih],'yyyymmdd')))=0))
  12. GROUP BY Format([tarih],'Short Date')"
  13. end if
  14. rs.movenext
  15. loop
  16. rc.close
  17. set rs=nothing
  18. end sub


Yeni tablo içinde tarih verisi olup, mesaj gösterilmesi caninizi sıkabilir.

(17-10-2023, 08:11)snapper demiş ki: sQLA = "SELECT Format([tarih],|d|) AS deneme ....................................................................count([veri]|) AS deneme2 " & _   
"count([veri]|) AS deneme3 FROM [veri]" & _   
"GROUP BY Format([tarih],|d|)

İhtiyacı anlayamadım. Tarihi gün olarak belirtip, saydırmak ve sayılanı yanana göstermemi istiyorsunuz?

[Resim: attachment.php?aid=25958]

Böyle olabilir mi?


Eklenti Dosyaları
.png   Snapper.PNG (Boyut: 59,79 KB / İndirilme: 45)



  Alıntı
Bu mesajı beğenenler:
#9
(19-10-2023, 13:19)dsezgin demiş ki:
(19-10-2023, 12:46)snapper demiş ki: Ustam,emeğinize sağlık ama ben ekleme sorgusu oluşturmak istemiyorum. Eğer var ise tarihli veri var diyecek yoksa modulü çalıştıracak. Aşağıdaki gibi birşey olabilir mi?

https://www.access-sql.com/Konu-Ayni-Tar...#pid133242Mesaj 6yi düşündüğünüz gibi oluşturabilirsiniz

Form uzerinden tek tarih girilerek,
Visual Basic
  1. Private Sub Tarih_afterupdate()
  2. if dcount("*","[Yeni Tablo]","Format(Tarih,'yyyymmdd')=" & Format(me.Tarih,"yyyymmdd"))>0 then
  3. MsgBox "Eklemek istediğiniz tarihli veri bulunmaktadır.", vbOKOnly, "Bilgi!"
  4. else
  5. Call ıslem1
  6. end if


Veri cagirilarak
Visual Basic
  1. Dim rs As New ADODB.Recordset
  2. rs.Open "Veri", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
  3. if rs.recorcount=0 then exit sub
  4. do until rs.eof
  5. If dcount("*","[Yeni Tablo]","Format(Tarih,'yyyymmdd')=" & Format(rs!Tarih,"yyyymmdd"))>0 Then
  6. MsgBox "Eklemek istediğiniz tarihli veri bulunmaktadır.", vbOKOnly, "Bilgi!"
  7. else
  8. currentdb.execute "INSERT INTO [Yeni Tablo] ( Tarih, Veri )
  9. SELECT Format([tarih],'Short Date') AS Expr2, Sum(IIf([veri]>0,1,0)) AS Expr1
  10. FROM Veri
  11. WHERE (((DCount('*',"[Yeni Tablo]','Format(Tarih,'yyyymmdd')=' & Format([tarih],'yyyymmdd')))=0))
  12. GROUP BY Format([tarih],'Short Date')"
  13. end if
  14. rs.movenext
  15. loop
  16. rc.close
  17. set rs=nothing
  18. end sub


Yeni tablo içinde tarih verisi olup, mesaj gösterilmesi caninizi sıkabilir.

(17-10-2023, 08:11)snapper demiş ki: sQLA = "SELECT Format([tarih],|d|) AS deneme ....................................................................count([veri]|) AS deneme2 " & _   
"count([veri]|) AS deneme3 FROM [veri]" & _   
"GROUP BY Format([tarih],|d|)

İhtiyacı anlayamadım. Tarihi gün olarak belirtip, saydırmak ve sayılanı yanana göstermemi istiyorsunuz?

[Resim: attachment.php?aid=25958]

Böyle olabilir mi?

Sezgin Bey, örnek dosyalar üzerinden gittiğim için kendimi çok net ifade edemedim kusuruma bakmayın lütfen.
Aslında excel dosyasından veri çekiyorum, yarım saatlik toplam 48 adet veride hesaplama yaparak günlük olarak 1 veriye düşürüyorum. Onu da farklı bir tabloya insert edip, excelden çektiğim verileri siliyorum.

Tabi bazen excelden aynı tarihli veriler çekilebiliyor. Onu engellemek istiyorum. Kullanıcıya da eklemek istediğiniz veri zaten var şeklinde uyarı gitsin istiyorum.

Ek olarak excelden çekilen her günde yarım saatlik 48 adet veri yoksa da uyarı gitsin istiyorum. Kullanıcıya veriniz eksik işlem yapılamadı excel dosyasını kontrol edin şeklinde uyarı gitsin istiyorum.


Kısacası excelden çekilen veride, 
1)Yeni tabloda aynı tarihli veriler var ise modülleri çalıştırmayacak.  (birden fazla tarih olabilir)
2)gün sayısı x 48 adet yarım saatlik veri koşulunu sağlamıyorsa da modülleri çalıştırmayacak. (örneğin 17,18 ve 19.10.2023 tarihli veriler çekiliyor, 3 gün x 48 adet yarım saatlik veri = 144 adet satır yani veri olması lazım, eğer 146 veri var ise modül çalışmasın)



  Alıntı
Bu mesajı beğenenler:
#10
(19-10-2023, 14:22)snapper demiş ki: 1)Yeni tabloda aynı tarihli veriler var ise modülleri çalıştırmayacak.  (birden fazla tarih olabilir)
2)gün sayısı x 48 adet yarım saatlik veri koşulunu sağlamıyorsa da modülleri çalıştırmayacak. (örneğin 17,18 ve 19.10.2023 tarihli veriler çekiliyor, 3 gün x 48 adet yarım saatlik veri = 144 adet satır yani veri olması lazım, eğer 146 veri var ise modül çalışmasın)


.rar   Örnek (42).rar (Boyut: 105,04 KB / İndirilme: 19)
48 adet veri kontrolü ile var olan tarih ve 48 den eksik + fazla olan kayıtları KayitVar tablosuna açıklama ile kaydeder, koşul sağlanan yerde call islem yapar.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Aramada Hep Aynı Veriler Geliyor ankaram 4 131 21-11-2023, 10:46
Son Mesaj: ankaram
  [SORGU] Sınıfa Kayıtlı Aktif öğrenci Sayısını Bulmak Dcount Fonksiyonu by_hayalci 2 128 24-08-2023, 08:38
Son Mesaj: by_hayalci
  Altformda Hücre Ile Değil Satır Ile Işlem Yapma Hakkında. OGUZTURKYILMAZ 1 160 22-04-2023, 23:48
Son Mesaj: OGUZTURKYILMAZ
  [TABLO] Tablodaki Aynı Isimlerin Sayısını Yazdırma omergenc7 13 560 26-03-2023, 13:11
Son Mesaj: dsezgin
access-sql-9 [RAPOR] Aynı Satırları Bir Kere Gösterip Saydırma oguzt 10 303 14-03-2023, 22:17
Son Mesaj: oguzt
  Başlıkları Aynı Olmayan EXcel Tablosunu Dosya Bul Butonu Ile Accese Veri Almak snapper 1 189 17-12-2022, 03:13
Son Mesaj: dsezgin
  [SORGU] Büyük Tarihli Kayıtlar Hk. meceka 6 220 15-12-2022, 08:47
Son Mesaj: meceka
  Raporda Aynı ürünler Toplama ankaram 6 264 23-11-2022, 17:54
Son Mesaj: ankaram

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi