Otomatik sayıya Ayrıntılı Çözüm

Katılım
28 Eylül 2007
Mesajlar
4
Excel Vers. ve Dili
Office Xp
Biraz acemiyim arkadaşlar.. Otomatik sayının silindiğinde o kaydı atlayarak yeni kayıt oluşturması ve bunun sürüp gitmesi ile ilgili birkaç bilgi var forumda ancak benim ihtiyacımı karşılamıyor.

Şöyle ki otomatik sayı silindiğinde tekrar kayıt girildiğinde en küçük silinmiş kaydı bulup o değeri atayacak. Ancak otomatik sayı aynı değerde yine olmayacak. Yeni kayıt girildiğinde eski kaldığı yerden devam edecek. Hatta her kayıt silinip yeni kayıt eklendiğinde tablodaki sıralama otomatik sayıya bağlı olarak yeniden düzenlenecek.. Umarım anlatabilmişimdir. Yardımcı olursanız sevinirim. Acemiyim detaylı yardımcı olursanız sevinirim..
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın sinanarslan,

Söylediğiniz özelliklerdeki bir alan otomatik sayı biçimli değildir zaten. Siz otomatik sayının böyle artmasından neden şikâyetçisiniz ve ihtiyacınız tam olarak ne onu söyleyin başka çözümler bulalım.

Gerçi tahmin ediyorum ama bir de sizden dinlemek istiyorum.

Gelelim otomatik sayılı alanın neden kullanıldığına. Bu tip alanlar genellikle başka tablolarla ilgili tablonun ilişkisinde kullanılır, bu yüzden de otomatik artan alandır. Eğer siz her silme ve kayıtta bu alanın verilerini değiştirirseniz tablo ilişkileri ne olur tahmin edebiliyor musunuz.

Onun için siz ihtiyacınızı belirtin ona çözüm bulalım.
 
Katılım
15 Kasım 2006
Mesajlar
583
Excel Vers. ve Dili
Ms Office 2003 Türkçe
Sayın modalı yeterince açıklamış zaten ama bir iki şey de ben ilave etmek istiyorum.

Bence her tabloda bu otomatik sayı alanından kullanılmalı. Hiç kullanılmayacak olsa bile kullanılmalı.
Çünkü her bir satırın kendine has bir numarası olmalı. Access bunu otomatik olarak sağlamadığı için biz kendimiz otomatik sayı olarak bir alan ekliyoruz.

Bildiğim kadarıyla sql2000 de de böyle bir durum var. Yani herbir kaydı diğer kayıttan ayıran bir kayıt ayıracı yani bu şekilde bir otomatik sayı alanı yok.

Ancak SQL2005 te bu duruma bir çözüm getirmişler. Siz bir alan eklemesenizde arka tarafta her kayda ait gizli bir kayıt numarası var.

Mesela oracleda da "rowid" diye bir alan var gizli olarak duran ama istenildiğinde erişilebilen.

Bu sebepledir ki, access te de kullanılan her tabloda, aslında bir otomatik sayı kullanılmalı. Ve bu tür alanlara harici özel işler yüklenilmemeli.

master-detail yapıları hariç tutuyorum tabi.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Herkes otomatik sayının çalışmasına kafayı takmış durumda:) Ama aslında ben arkadaşın otomatik sayıyla ilgili söylediklerinden şöyle birşey çıkardım. Otomatik sayıya dokunmayalım ama bir başka hücre otomatik sayı gibi çalışsın, silinenlerin yerine yeni kayıtlar koysun demek istiyor.Ben de buna benzer bir yöntem uygulamıştım. Ama bunu bildiğim hiçbir yöntemle taBlo veya sorgu üzerinden yapamadım.Sorgu yardımıyla formda oluyor ama. Kod yazmayı bilen Yeni54 veya Modalı gibi uzmanlar eminim böyle birşey yapabilirler. Onların sadece iki satır kodla yaptıklarını ben sorgu, makro ve form kullanarak ancak yapabiliyorum. Yöntemlerimiz farklı..
 
Katılım
15 Kasım 2006
Mesajlar
583
Excel Vers. ve Dili
Ms Office 2003 Türkçe
Geçenlerde (ne kadar önce hatırlamıyorum. Çok geçmiş de olabilir:)) sayın modalı nın bu konuyla ilgili bir çözümü vardı. Arama yapmak lazım.
 
Katılım
28 Eylül 2007
Mesajlar
4
Excel Vers. ve Dili
Office Xp
Açıklama

Arkadaşlar katkılarınıza teşekkürler. Şöyle bir kez daha anlatmaya çalışayım.. Bir Tablo, ilk sütun sıra numarasını veriyor düzenli bir şekilde 1.2.3...30... diğer bilgiler ise form yardımıyla giriliyor ve sadece raporlanarak çıktı alınıyor.. Basit bir şey aslında yapmak istediğim.. İlişkili tablolarda kullanmıyorum.. Yapmak istediğim sadece sıra numarası nı otomatik olarak vermesini sağlamak.Sıra numarasındada eksik sayı, 10 dan başlama gibi durumlar olmasın istiyorum. Sıra numarasını dışarıdan girdirebilirim bu da çözüm olur. Ama ben otomatik olsun istemiştim sadece.. Teşekkürler..
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Form üzerinde sadece ilk sayıyı kendimizin girdiği sonrasında da en büyük sayıyı bulup otosayi=sonsayi +1 formülüyle bu sayıyı hep bir artıran bir yöntem kullanmıştım. Fakat burada da aradaki sayıları sildiğinizde o sayılar kullanılamıyor. Çünkü bu numara zaten işlem numarası olarak programın belkemiği.. O değişirse vatandaşa verdiğiniz numara ile kayıtlardaki numara farklı olur. Buna bağlı alt kayıtlar varsa -ki iyi bir programda bu kriter genelde hep kullanılır- tüm işler allak-bullak olacaktır. Bu yüzden sadece silinen kaydın yerine o anda gelen kayıt sıradaki noyu alabilir. Zamanım olursa size bu örneği eklerim. Daha iyi anlaşılır. Kolay gelsin..
 
Katılım
27 Mart 2006
Mesajlar
44
SAYIN mehmetdemiral zamanınız olup bu konuya çözüm bulabildiniz mi? Çünkü şu an benimde tam bu konuya ihtiyacım oldu.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Gönderdiğim dosyada ilk açılan formda yeni butonuna basınca bulunulan kayıt son kayda geçiriliyor ve Müşteri bilgileri formu açılıyor. Bu form açıldığında bir önceki sayının bir üstü otomatik gelir. Formu kapatınca ana satış formunda son kayıt görünür. 1999 yılında yapıtığım bir çalışmadır. Sadece otomatik sayı bölümleri çalışacak şekilde örnek oluşturup gönderdim. Kolay gelsin..
 
Katılım
27 Kasım 2006
Mesajlar
8
Excel Vers. ve Dili
office 2000
Syn Modalının dah önce getirdiği çözüm çalışmıyor. Arkladaşın bahsettiği otomatik sayı değil zaten. Problemini yanlış tanımlıyor. SynMehmetDemiral ın dediği gibi problem çözülür. Kodlama kısmına döngü koyduğunuzda devamlı bir artar.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Serkan Ekşioğlu'nun Eskidefterler.com adresinde Ocak 2001'de yayınladığı ilginç bir yazısı var bu konuyla ilgili. Otomatik sayı konusunda çok radikal bir çözüm getiriyor bence. Mutlaka okuyun derim.. Yazıda geçen dosyayı da word dosyası olarak dökümanı da ekliyorum. Ekleri incelemeye üşenenler için aşağıya yazıyı da yapıştırdım. (Hizmet nasıl ama:)) )


OTOMATİK SAYI DEĞİŞİR AMA..
Otomatik sayı değerinin değiştirilmesini istemenin sebebi kayıtlara tanım numarası vermekten ziyade görünüşü güzel göstermek olsa gerek.

Aşağıdaki yöntemi sadece otomatik sayıların nasıl işlendiği konusunda bir fikir vermesi açısından dikkate alın. Kullanmanızı tavsiye etmiyorum. Zaten tabloda kayıtlar varken yeni alınacak otomatik sayı değerini sıfırlamak ya da değiştirmek anlam taşımaz.

Küçük bir dosyada otomatik sayı alanı içeren bir tablo oluşturuldu. Bu tabloya 15 kayıt eklendi, bazı kayıtlar silindi. Bu durumdayken dosyanın bir yedeği alındı. Sonra tablo açılıp yeni kayıt satırına gelinerek birşeyler yazıldı ve ESC tuşu ile kayıttan vazgeçildi. Böylelikle dosyanın bir yerine en son kullanılan otomatik sayı değeri yazılmış oluyor. Dosya kapatıldı ve küçük bir kod yazıp iki dosya arasında farklı olan kesimleri araştırdık. Sonuçta bu iki dosya arasında sadece 2 baytlık kesimin farklı olduğunu gördük.

Bunlardan birinin değerini LONG tipinde (4 bayt) okuduğumuzda en son seçtiğimiz otomatik sayı değerini elde ettik. Geriye bu değeri değiştirmek kaldı. Oraya ne yazılırsa otomatik sayı yeni değerini bu numaradan başlatıyordu. Burayı 0 olarak değiştirdikten sonra resimdeki gibi bir görüntü normaldi artık.

Otomatik sayı değeri artık 1’den başlıyor.
Eğer otomatik sayı alanı birincil anahtar (primary key) olarak belirlenmişse, sonraki kayıt girişlerinde çoğaltılmaması gereken dizin değeri hatası (duplicate unique index) ile karşılaşmak kaçınılmaz olur.

Siz en iyisi bu değeri arkaplan işlemleri için kullanın ya da kullanıcıya herhangi bir kod değeriymiş gibi gösterin. Ben olsam ekran başındaki kişiyi resimde olduğu gibi kandırırdım.

Nasıl mı oldu diyorsanız, tablonun tasarım görünümünde otomatik sayı alanının Format (Biçim) özelliğinin değerini tam olarak

“Kod “#

şeklinde belirtmeniz yeterli.

(Serkan Ekşioğlu'nun bir yazısından alınmıştır.)
 
Katılım
1 Şubat 2006
Mesajlar
140
Excel Vers. ve Dili
2010
otomatik sayı ve kaydet

selamun aleyküm,
şu otomatik sayı olayında şöyle bişey mümkün mü acaba? form üzerindeki kaydet tuşuna basıncaya kadar otomatik sayı saymasın, ne zamanki kaydete basınca otomatik sayı gelsin.
teşekkürler...
 
Katılım
25 Aralık 2007
Mesajlar
6
Excel Vers. ve Dili
ofis 2003
slm lar


müşterilerle ilgili tablo hazırlarken, otomatik müşteri numarası vericem, fakt bu numaralandırmayı 1,2,3,4,5,..... şeklinde değilde M001,M002,M003 şeklinde olmasını istiyorum lütfen yardım edin :(
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın satri,

Tablonuzu normal olarak oluşturun. Otomatik sayı alanının biçim ayarına şunu yazın.
Kod:
\M000
İyi çalışmalar:)
 
Katılım
25 Aralık 2007
Mesajlar
6
Excel Vers. ve Dili
ofis 2003
sayın modalı çok teşekkür ederim 2 saatlik bir araştırma ve deneme yanılma yöntemi le bende buldum, fakat teyit ettiğiniz için sizlere çok teşekkür ederim... çok acemiyim, bir kaç sorum daha olacak, okulu bitirmem bu derse bağlı :)
 
Üst