Merhaba,
Ekte ki resimdede açıklamaya çalıştığım gibi Ad ve As diye iki sütun var.As değerinin 0 ve 1 olmasına göre Ad sütunu aynı kalıyor veya 1 artıyor.Bunu sadece query kullanarak yapma şansı var mıdır(Kod yazmayı bilmediğim için sadece query ile yapmak istiyorum,hazır kod yollasanız bile nasıl çalıştırılacağını da bilmediğimden deediğim gibi query ile çözüm rica ediyorum)
Bu sanki Autonumber gibi ama dediğim gibi
As değerinin 0 ve 1 olmasına göre Ad sütunu aynı kalıyor veya 1 artıyor[
attachment=30404]
resim eklenmemiş kontrol eder misiniz?
soruda belirtilmemiş ama başlıkta "auto number/otomatik sayı " olduğu vurgulanmış, bildiğim kadarıyla otomatik alanlar -yapısını değiştirmediğiniz sürece- değişmez, artırıp azaltamaz başka bir değer atayamazsınız. ama eğer "Ad" alanı otomatik sayı değilse sorguyla olur, ama sorun şu bu sorgu kaç defa çalışacak ve çalıştırıldığında "AS" sütunundaki değer 0'dan 1'e çevrilecek mi yoksa aynı mı kalacak?
eğer aynı kalacaksa ve sorgu da birden fazla çalıştırılacaksa her defasında AS=1 için AD=AD+1 olacak mı? genel olarak güncelleme sorgusunun kodu aşağıdaki gibidir.
dilerim işinize yarar.
not : As ve Ad alanlarının sayısal veri olduğu varsayılmıştır.
UPDATE [tabloAdi] SET [Ad] = [Ad]+1 where [As]=0;
sayın @
10pele10
öncelikle tekrar belirteyim otomatik sayı alanlarının değerini -tablonun yapısını değiştirmeden- değiştiremezsiniz. en azından ben öyle biliyorum o nedenle "as2" diye bir alan tanımladım işlemi onun üzerinden gerçekleştirdim.
1 - maalesef sadece sorguya dayalı yapamadım o nedenle kodla yaptım
2 - örnek vtniz olmadığı için kendimce bir tane oluşturdum kendi tablonuza uyarlarsınız[
attachment=30407]
maalesef gönderdiğiniz form bende açılmadı ama -yanılmıyorsam- sorun eski
Access sürümlerinde "ADO" nun olmamasından kaynaklanıyor.
kodu değiştirdim dilerim sorunsuz çalışır
referanslardan "Microsoft DAO 3.x Object Library" etkinleştirmelisiniz buradaki 3.x ofis sürümüne göre değişebilir
Private Sub BtnGuncelle_Click()
'referans eklemeniz gerekebilir "Microsoft DAO 3.x Object Library" referansını eklemelisiniz
Tbas = Now
Dim rS As Recordset '<== burada hata verirse ==> Dim rS As DAO.Recordset de olabilir <== olarak değiştirin
Dim sOrGu, SqlGuncelle As String
Dim x As Long
sOrGu = "select * from tbltablo order by sno"
Set rS = CurrentDb.OpenRecordset(sOrGu)
If rS.RecordCount = 0 Then GoTo 10
rS.MoveLast
rS.MoveFirst
x = 0
Do Until rS.EOF
x = x + IIf(DLookup("as", "tbltablo", "sno=" & rS.Fields("sno")) = Nz(DLookup("as", "tbltablo", "sno=" & rS.Fields("sno") - 1)), 0, 1)
SqlGuncelle = "UPDATE TblTablo SET TblTablo.as2 =" & x & " where sno=" & rS.Fields(0)
CurrentDb.Execute SqlGuncelle
rS.MoveNext
Loop
10
'süre hesapla_______________________________________
Tbit = Now
Sure = DateDiff("s", Tbas, Tbit)
tSny = Sure Mod 60
tDk = Sure \ 60
MsgBox ("İşlem " & tDk & " dakika :" & tSny & " saniyede bitti")
'süre hesapla_______________________________________Bitti
End Sub