CurrentDb.Execute "UPDATE T_Tüm_isler INNER JOIN Tablo1 ON T_Tüm_isler.isemrino = Tablo1.isemrino SET T_Tüm_isler.statü = 'Açık' WHERE (((T_Tüm_isler.statü)='kapalı'))"
En son satir yukarida ki gibi yazilmali ve kac kalem sorusu ise guncelleme yapilmadan once gunclleme sorgusunun kriteri ile elde edilebilir.
Misal :
Yukarida ki satir uzerinden gidersek
Dim Kyt As recordset
Set kyt=currentdb.openrecordset("SELECT count(*) From T_Tüm_isler INNER JOIN Tablo1 ON T_Tüm_isler.isemrino = Tablo1.isemrino WHERE (((T_Tüm_isler.statü)='kapalı'))")
Msgbox kyt.fields(0) & " Adet Kayit Guncellenecektir."
kyt.close:set kyt=nothing
CurrentDb.Execute "UPDATE T_Tüm_isler INNER JOIN Tablo1 ON T_Tüm_isler.isemrino = Tablo1.isemrino SET T_Tüm_isler.statü = 'Açık' WHERE (((T_Tüm_isler.statü)='kapalı'))"
siralamasi ile yapilabilir.
Sayın dsezgin83260 sizin güncellemeleri sayması için yazmış olduguz kodu yapıştırdım çalışıyor, ancak diger 4 sorguyada uyguladıgumda imleç hatası diyor ilaverer yaptım ama bulamadım bakmanız mümkün mü
Private Sub Verilerial_Click()
''MsgBox "Merhaba eski veriler silinecek yeni veriler gelecek"
'Tablo1 boşaltır
CurrentDb.Execute "DELETE * FROM [Tablo1] "
'''''Tablo1e yeni verileriekler
''''''''''MsgBox "Merhaba yeni veriler gelecek", vbCritical + vbYesNo, UYARI
DoCmd.TransferSpreadsheet acImport, 8, "Tablo1", "C:\Users\User\Documents\Tablo1.xlsx", True, "a1:j20"
''''''''''''''MsgBox " ana tabloya veri ekleniyor"
Dim Kyt As Recordset
Set Kyt = CurrentDb.OpenRecordset(T_Tüm_isler ( isemrino, açıklama, tarih, verilenyöv, durumu, yer, sorumlu, malzeme, malzdurumu )" & _
"SELECT Tablo1.isemrino, Tablo1.açıklama, Tablo1.tarih, Tablo1.verilenyöv, Tablo1.durumu, Tablo1.yer, Tablo1.sorumlu, Tablo1.malzeme, Tablo1.malzdurumu FROM Tablo1 LEFT JOIN T_Tüm_isler ON Tablo1.isemrino = T_Tüm_isler.isemrino")
MsgBox Kyt.Fields(0) & " Adet yeni veri ekleme yapıldı."
Kyt.Close: Set Kyt = Nothing
CurrentDb.Execute "INSERT INTO T_Tüm_isler ( isemrino, açıklama, tarih, verilenyöv, durumu, yer, sorumlu, malzeme, malzdurumu )" & _
"SELECT Tablo1.isemrino, Tablo1.açıklama, Tablo1.tarih, Tablo1.verilenyöv, Tablo1.durumu, Tablo1.yer, Tablo1.sorumlu, Tablo1.malzeme, Tablo1.malzdurumu FROM Tablo1 LEFT JOIN T_Tüm_isler ON Tablo1.isemrino = T_Tüm_isler.isemrino"
''MsgBox " ana tabloya veri eklendi"
Dim Kyt As Recordset
Set Kyt = CurrentDb.OpenRecordset("SELECT count(*)Form Tablo1 INNER JOIN T_Tüm_isler ON Tablo1.isemrino = T_Tüm_isler.isemrino SET T_Tüm_isler.tarih = [Tablo1]![tarih], T_Tüm_isler.verilenyöv = [Tablo1]![verilenyöv];")
MsgBox Kyt.Fields(0) & " Adet güncelleme yapıldı."
Kyt.Close: Set Kyt = Nothing
CurrentDb.Execute "UPDATE Tablo1 INNER JOIN T_Tüm_isler ON Tablo1.isemrino = T_Tüm_isler.isemrino SET T_Tüm_isler.tarih = [Tablo1]![tarih], T_Tüm_isler.verilenyöv = [Tablo1]![verilenyöv];"
''MsgBox " ana tabloya veri günellendi"
Dim Kyt As Recordset
Set Kyt = CurrentDb.OpenRecordset("SELECT count(*) From T_Tüm_isler LEFT JOIN Tablo1 ON T_Tüm_isler.isemrino = Tablo1.isemrino SET T_Tüm_isler.statü = 'kapalı', T_Tüm_isler.kapatma_tr = Date() WHERE (((Tablo1.isemrino) Is Null))")
MsgBox Kyt.Fields(0) & " Adet Kayit kapalı statüsüne çevridi."
Kyt.Close: Set Kyt = Nothing
CurrentDb.Execute "UPDATE T_Tüm_isler LEFT JOIN Tablo1 ON T_Tüm_isler.isemrino = Tablo1.isemrino SET T_Tüm_isler.statü = '" & kapalı & "', T_Tüm_isler.kapatma_tr = Date() WHERE (((Tablo1.isemrino) Is Null));"
'''MsgBox " ana tabloda eşleşmeyenler kapalı statüsüne alıdı"
Dim Kyt As Recordset
Set Kyt = CurrentDb.OpenRecordset("SELECT count(*) From T_Tüm_isler INNER JOIN Tablo1 ON T_Tüm_isler.isemrino = Tablo1.isemrino WHERE (((T_Tüm_isler.statü)='kapalı'))")
MsgBox Kyt.Fields(0) & " Adet Kayit kapalıdan açık statüsüne çevridi."
Kyt.Close: Set Kyt = Nothing
CurrentDb.Execute "UPDATE T_Tüm_isler INNER JOIN Tablo1 ON T_Tüm_isler.isemrino = Tablo1.isemrino SET T_Tüm_isler.statü = 'Açık' WHERE (((T_Tüm_isler.statü)='kapalı'))"
Private Sub Verilerial_Click()
Dim Kyt As Recordset
MsgBox "Merhaba eski veriler silinecek yeni veriler gelecek"
CurrentDb.Execute "DELETE * FROM [Tablo1] "
MsgBox "Merhaba yeni veriler gelecek", vbCritical + vbYesNo, UYARI
DoCmd.TransferSpreadsheet acImport, 8, "Tablo1", CurrentProject.Path & "\Tablo1.xlsx", True, "a1:j20"
MsgBox "Merhaba yeni veriler geldi"
MsgBox " ana tabloya veri ekleniyor"
Set Kyt = CurrentDb.OpenRecordset("SELECT Count(*) FROM Tablo1 LEFT JOIN T_Tüm_isler ON Tablo1.isemrino = T_Tüm_isler.isemrino")
MsgBox Kyt.Fields(0) & " Adet yeni veri ekleme yapýldý."
Kyt.Close: Set Kyt = Nothing
CurrentDb.Execute "INSERT INTO T_Tüm_isler ( isemrino, açýklama, tarih, verilenyöv, durumu, yer, sorumlu, malzeme, malzdurumu )" & _
"SELECT Tablo1.isemrino, Tablo1.açýklama, Tablo1.tarih, Tablo1.verilenyöv, Tablo1.durumu, Tablo1.yer, Tablo1.sorumlu, Tablo1.malzeme, Tablo1.malzdurumu FROM Tablo1 LEFT JOIN T_Tüm_isler ON Tablo1.isemrino = T_Tüm_isler.isemrino"
Set Kyt = CurrentDb.OpenRecordset("SELECT count(*) FROM Tablo1 INNER JOIN T_Tüm_isler ON Tablo1.isemrino = T_Tüm_isler.isemrino")
MsgBox Kyt.Fields(0) & " Adet güncelleme yapýldý."
Kyt.Close: Set Kyt = Nothing
CurrentDb.Execute "UPDATE Tablo1 INNER JOIN T_Tüm_isler ON Tablo1.isemrino = T_Tüm_isler.isemrino SET T_Tüm_isler.tarih = [Tablo1]![tarih], T_Tüm_isler.verilenyöv = [Tablo1]![verilenyöv];"
Set Kyt = CurrentDb.OpenRecordset("SELECT count(*) From T_Tüm_isler LEFT JOIN Tablo1 ON T_Tüm_isler.isemrino = Tablo1.isemrino WHERE (((Tablo1.isemrino) Is Null))")
MsgBox Kyt.Fields(0) & " Adet Kayit kapalý statüsüne çevridi."
Kyt.Close: Set Kyt = Nothing
CurrentDb.Execute "UPDATE T_Tüm_isler LEFT JOIN Tablo1 ON T_Tüm_isler.isemrino = Tablo1.isemrino SET T_Tüm_isler.statü = '" & kapalý & "', T_Tüm_isler.kapatma_tr = Date() WHERE (((Tablo1.isemrino) Is Null));"
Set Kyt = CurrentDb.OpenRecordset("SELECT count(*) From T_Tüm_isler INNER JOIN Tablo1 ON T_Tüm_isler.isemrino = Tablo1.isemrino WHERE (((T_Tüm_isler.statü)='kapalý'))")
MsgBox Kyt.Fields(0) & " Adet Kayit kapalýdan açýk statüsüne çevridi."
Kyt.Close: Set Kyt = Nothing
CurrentDb.Execute "UPDATE T_Tüm_isler INNER JOIN Tablo1 ON T_Tüm_isler.isemrino = Tablo1.isemrino SET T_Tüm_isler.statü = 'Açýk' WHERE (((T_Tüm_isler.statü)='kapalý'))"
end sub
Hocam bu ekleme sorgusunun kodu hariç diğerleri çalışıyor. bunda da 6 veri ekleniyor mesajı geliyor fakat bu altı veride eklenecek tabloda olduğu için (koşulumuz eşleşmeyenler) hataya çeviriyor diye düşündüm ;
verileri değiştirdim gene aynı hata yı aldım
hata mesajı : 3061 çok az parametre uyarısı alıyorum
Tükçe karakter kullanmayın demişsiniz kullandığım sütün isimlerini değiştirmem gerekir mi?
birde hocam ben bu işlemi ekleme, güncelleme , silme veriyi alma sorgusu ile yapıyorsam vba kodu ile hepsini bir buton altında toplamak bana kazandırıyor ? sistemin daha hızlı çalışması mı ? yoksa sorgularda ki dağınıklılık mı ?
Bizleri cevapsız bırakmadıgınız için ilginize teşekkür ederim
Set Kyt = CurrentDb.OpenRecordset("SELECT Count(*) FROM Tablo1 LEFT JOIN T_Tüm_isler ON Tablo1.isemrino = T_Tüm_isler.isemrino")
MsgBox Kyt.Fields(0) & " Adet yeni veri ekleme yapyldy."
Kyt.Close: Set Kyt = Nothing
CurrentDb.Execute "INSERT INTO T_Tüm_isler ( isemrino, açyklama, tarih, verilenyöv, durumu, yer, sorumlu, malzeme, malzdurumu )" & _
"SELECT Tablo1.isemrino, Tablo1.açyklama, Tablo1.tarih, Tablo1.verilenyöv, Tablo1.durumu, Tablo1.yer, Tablo1.sorumlu, Tablo1.malzeme, Tablo1.malzdurumu FROM Tablo1 LEFT JOIN T_Tüm_isler ON Tablo1.isemrino = T_Tüm_isler.isemrino"
Sorularin nasil calistigina bakmadim. VBA'da SQL'in arkasi arkasiya nasil calistirildigina misaldi.
VT istenilen hizda islemlerin gerceklestirilmesi. Tablo yapilari ve veri turlerinin ihtiyaciniza gore tasarlamali ve tablo iliskileri bire-cok tercih edilmelidir. Tablolar arasinda anahtar alanlar sayi olarak secilmesi ve kriter alanlarin bu alanlar uzerinden yapilmasi size arti avantajlar sunacaktir.
Kalem Sayisi Sorma Sorgusu
SELECT Count(*) FROM Tablo1 LEFT JOIN T_Tüm_isler ON Tablo1.isemrino = T_Tüm_isler.isemrino WHERE (((T_Tüm_isler.isemrino) Is Null))
Ekleme Sorgusu
INSERT INTO T_Tüm_isler ( isemrino, açıklama, tarih, verilenyöv, durumu, yer, sorumlu, malzeme, malzdurumu ) SELECT Tablo1.isemrino, Tablo1.açıklama, Tablo1.tarih, Tablo1.verilenyöv, Tablo1.durumu, Tablo1.yer, Tablo1.sorumlu, Tablo1.malzeme, Tablo1.malzdurumu FROM Tablo1 LEFT JOIN T_Tüm_isler ON Tablo1.isemrino = T_Tüm_isler.isemrino WHERE (((T_Tüm_isler.isemrino) Is Null))
olarak degistirin. Eklenecek tablonun icinde isemrino olmayan kayitlar denmesi ile istenen sonuc alinabilir.
Set Kyt = CurrentDb.OpenRecordset("SELECT count(*)Form Tablo1 INNER JOIN T_Tüm_isler ON Tablo1.isemrino = T_Tüm_isler.isemrino WHERE (((T_Tüm_isler.isemrino) Is Null))")
MsgBox Kyt.Fields(0) & " Adet yeni veri ekleme yapıldı."
şeklinde kayıt say yapıyorum eksik içleç hatası veriyor
ekleme sorgusu çalışıyor
CurrentDb.Execute "INSERT INTO T_Tüm_isler ( isemrino, açıklama, tarih, verilenyöv, durumu, yer, sorumlu, malzeme, malzdurumu ) SELECT Tablo1.isemrino, Tablo1.açıklama, Tablo1.tarih, Tablo1.verilenyöv, Tablo1.durumu, Tablo1.yer, Tablo1.sorumlu, Tablo1.malzeme, Tablo1.malzdurumu FROM Tablo1 LEFT JOIN T_Tüm_isler ON Tablo1.isemrino = T_Tüm_isler.isemrino WHERE (((T_Tüm_isler.isemrino) Is Null) AND ((T_Tüm_isler.isemrino) Is Null))"
şeklinde
son olarak
"Eklenecek tablonun icinde isemrino olmayan kayitlar denmesi ile istenen sonuc alinabilir."
anladıgımız bumu dur yoksa başka bir şey den mi bahsediyorsunuz
Tablo1.isemrino = T_Tüm_isler.isemrino WHERE (((T_Tüm_isler.isemrino) Is Null) AND ((T_Tüm_isler.isemrino) Is Null))