Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Ghaldszar' ın Access soruları köşesi


ghaldszar

Öne çıkan mesajlar

Access ile yapabileceğime karar verip projeme başladım. Bir tane de kitap aldım Adım Adım Access diye.
Bilmediklerime kitaptan bakıyorum ordan bulamadıklarım da oluyor size sorucam umarım yardımcı olan olur.

Şimdi ilk sorum elimdeki access ing. olduğundan içindeki ornek projeler de ingilizce tabii. Türkçe örnekk access projeleri bulabileceğim bir yerler var mı?
Link to comment
Sosyal ağlarda paylaş

Şİmdi kısaca yapacağım projeyi size anlatayım da bana kaba olarak ne yapmam gerektiğini söylerseniz araştırma şansım olur.
DB lerle ilgili çok tecrübem olmadığından biraz bana göre ağır bir proje olacak.

Şimdi Satın alma için bir DB yapmak istiyorum.

İhtiyac olan malzemeler ve detayları
Şiparişler
Tedarikler
Müşteriler ve detayları


Temel olarak bunlar olacak fakat işlem önemli tabii.
O da şöyle.

Mala ihtiyaç var Talep bölümüne giriyoruz.
ihtiyacı giriyoruz.
Malzeme
Malzeme Kategorisi
Miktarı ve miktar cinsi (kg/m/plaka/boy)
Talep eden Departman

Sonra bir hafta sonra mal geldi.
Tedarik kısmına giriyoruz
Malzemeyi buluyoruz.
Gelen miktarı
Giden departman ve ilgili kişi
tedarik fiyatı
tedarik edilen firma ve bilgileri (firmayı bulunca bilgiler otomatik olursa iyi olur)

Şimdi buraya kadar olduktan sonra ess sorun başlıyor.
Sanki bir muhasebe programı gibi işlemesi gerekiyor burda.
Şöyle ki
Talep edilen miktar ile tedarik edilen miktar birbirini çoğunlukla tutmayabiliyor.
Mesela fazla geliyor gelen fazlalık olunca onu depoya gönderiyoruz ki sonradan ihtiyac olduğunda depoda daha onceden soyledigimiz fazlalık var mı onu gorebilmeliyim.
Ya da diyelim eksik geldi o zaman da bana eksikler listesi cıkart dediğimde excel formatında onu printout alabilmeliyim.

Tabii bunlar dışında bir çok özellikte tablolar görmem ve printout da almam gerekebilicek.
Mesela tarihler arasında su firmadan aldığım mallar ve fiyatları
ya da
şu an talep edilen ve beklediğim mallar listesi
vs. vs.

Şimdi burada bana kabataslak olarak DB yi nasıl oluşturmam geektiği hakkında bilgi gerek. Yani surdan suna gir burdan buna gir gibi detay değil de
databaseyi daha sonradan da geniletebileceğim şekilde ne tarzda şekillendirmem gerektiği hakkında bilgi gerekli.

Tabii bunu da ekle ya da bunu çıkar olmaz gibi tavsiyelere de açığım.
Hadi patili kardeşler br el atıverin yardım gerek.
Link to comment
Sosyal ağlarda paylaş

accessi sadece kendi yazdığım kod içindne kullandığım için tam adım adım söyleyemiyorum;

ama aradığın ilk şey "database design" diye geçer, ve hatta "normal forms" veya "normalization" gibi bilgiler işine baya bi yarar.

tabloları tasarladıktan sonra da gerisi için ortanın üzerinde bi de SQL bilgin olması gerekiyor, iyi bi tutorialı tam olarak bitirirsen sanırım işe yarar güzel bişiler çıkar ortaya.

edik; veritabanı için ilk adım olmasa da öğreticilik açısından süfer bi proje bu, bunu çözersen bundan sora karşılaşabileceğin sorunların büyük bölümünü çok rahat çözersin
[signature][hline]Try Reality!
the invisibile and the non-existent look very much alike!


[Bu mesaj Rahan tarafından 27 Eylül 2005 14:16 tarihinde değiştirilmiştir]
Link to comment
Sosyal ağlarda paylaş

Valla Rahan çözmek zorundayım.
Firmada kısıtlı imkanlarla çalıştığım için bu tarz bir şeye şahsen çok ihtiyacım var.
Çok çeşitli malzemeler var ve bunları benim takip etmem isteniyor ki benim bunu kafamdan yapmam mümkün değil sonuç en iyisi bilgisayar kullanmak.
;)

Biraz daha detaylıca anlatmaya çalışayım.


Şimdi önce bir sayfa açılacak ve yazacak.
Talepler
Tedarikler

Talepler bölümününde giriş için;
TAlep Form No
TAlep Eden Departman
TAlep Tarihi
MAlzeme Adı
Malzeme Sınıfı (Çoktan şeçmeli)
Miktar
Miktar cinsi (Seçmeli: kg/m/plaka/boy/adet)
Açıklama
Talep Eden Kişi

Tedarik bölümünde ise
Malzeme Adı (Talep bölümüne girilenlerden secilecek)
Tedarik Miktarı
Miktar cinsi (talep kısmına seçilene göre otomatik)
Fiyatı
Tedarik Edilen Firma (Secilecek eger yoksa eklenecek)
Tedarikçi firma adres-Şehir (Kendi otomatik atacak daha önceki bilgilere göre)
Gönderilen departman ve kişi - açıklama
Link to comment
Sosyal ağlarda paylaş

Daha önce dediğim gibi bir tür muhasebe programı gibi çalışması lazım.

Talep edildiğinde açık olacak tedarik edildiginde ise açık kapanacak. Eksik kalırsa bu açıkta gözükecek. Eksik malzeme olarak. Eğer fazla gelirse de bu fazla gözükecek onu hangi depoya attığımız açıklama kısmında yazacak daha sonra talep girdiğimizde ordan düşecek.
Tabii zayi diye bir şey de olsa iyi olur. Mesela açıklama yapılsa orda. Biri kullanmıştır depoda başına bir şey grlmiştir kaybolmuştur. Denklik kaybolmasın.

Şimdi talep kısmına girdiğimiz bilgiler bize zaten talep formu ile geliyor ama sonra orda burada imzada kayboluyor. Ben bu talep formuna numara verip buraya girdiğimde istediğim zaman
Şu tarihli talep formları göster/yazdır
Şu nolu talep formu göster/yazdır
yapabilmeliyim.

Mevcut eksik listesi dediğimde elime istediğim sayıda ulaşmamış malzemeler listesi talep ettiğim tarih ile göster/yazdır yapılabilmeli

Malzeme talep edildiğinde şöyle bir fonksyon da çok işe yarayabilir.
Mesela talep formu girilir ve talep formu hakkında bilgi yazılır. Çoktan secmeli olarak: Onayda, teklif alınıyor, Sipariş verildi[firma ismi ve tahmini varış tarihi] )
Bu tarz bir şey olursa ki bunu durum diye bir bölümden girip/görebilir/yazdırabilirsek çok güzel olur.
Gerektiğinde istediğimiz şartlarda yazdırma da sağlanabilir.
Link to comment
Sosyal ağlarda paylaş

Daha print alabilceğim bir çok şeye ihtiyacım var tabii.
bunlar özellikle sınıflandırabilceğim şeyler olacak ki onları hallederim zaten.

Şimdi diceksiniz ki bokunu çıkardın bu kadar çok şey istenir mi?
Ne yapayım başka türlü altından kalkamıyacağım bu işlerin. KAlkamazsam da sonuç malum.

Neyse şimdi burada ihtiyacım olan ilk şey şu.
Veritabanını kurmak.

Şimdi veritabanını nasıl kurmalıyım.
Bu butun verileri tek tabloya işlemem mantıklı olmaz herhalde.
Bu konuda yardım istiyorum.
Ve verebileceğiniz her konuda tabii.
Link to comment
Sosyal ağlarda paylaş

İlk aşama Rahan'ın da dediği gibi tabloları oluşturmak. Tabloları oluşturmada pekçok kıstas var. Field'ların türlerinin doğru belirlenmesi, kafi miktarda yer ayarlanması ve primary, secondary veya combined key atamaları gibi, ki en önemlisi budur. Tür ve yer atanmasından ziyade bu anahtarların belirlenmesini doğru yapman işini çok rahatlatacaktır. Bu anahtarlar benzersiz olmalı. Bir tabloda bir kayıda erişmek istediğinde bu anahtarları kullanacaksın çünki. Tablolarını tek bir konuya yönelmiş ancak o konu ile ilgili herşeyi kapsayabilecek şekilde tasarlamalısın. Bir tablon sipariş olursa sipariş ile ilgili tüm bilgileri içermeli ancak ürünlere ait hiçbir bilgiye bulaşmamalı. Çünki o bilgiye ürün tablosundan ulaşabilirsin. Ancak o sipariş ile ürün arasında bir köprü kuracak alanı da unutmamalısın. Sipariş tablosu içinde ürün koduna referans gibi.

Tablolar oluştuktan sonra ilişkilerini kurman gerekiyor. Bunun için araçlar menüsünün altında ilişkiler bölümünü kullanacaksın. Burada grafiksel olarak bu tabloların biribirleri ile olacak ilişkilerini oluşturacaksın.

Örnek vermek gerekirse bir tablonda siparişi tutuyorsun diyelim. Bir diğerinde ise sipariş edilebilecek ürünlerin özelliklerini. Ürün özellikleri ile sipariş tablosu arasında "one to many" ilişkisi kurulması gerekiyor. Yani bir ürün sipariş tablosunda pekçok defa kullanılabilir şeklinde.

Bu ilişkiyi kurmak ne işime yarıyacak dersen, örneğin siparişi verilmiş bir ürünün teknik özelliklerini bilmek istersen ürünün özelliklerini sakladığın tablodan bilgileri bu ilişki vasıtası ile çağıracaksın. Ve tekrar ediyorum ürünün özellikleri tablosunda belirttiğin Primary key bu aşamada senin yardımcın olacak. Primary key gibi bir yönlendiricin olmazsa kaybolursun. Ayrıca ilişkilendirilmiş alanların güncellenmesini de ayarlarsan yapılacak değişimler alakalı tüm tabloların güncellenmesini sağlayacaktır.

Bu aşamada tamamlandığında bilgi giriş ekranlarını oluşturma safhası başlıyor. Yani formlar. Sorgulama yani querry bölümünü es geçtim zira access form wizard'ı kullanırken querry'leri kendisi otomatik oluşturuyor. Yoksa querry'ler öyle göz ardı edilebilecek şeyler değiller.

Bu formlarda kullanıcının bilgileri nasıl gireceğini şekillendiriyorsun. Atıyorum ürün özellikleri tablosunda bulunan fieldlar ürün adı, ürün kodu (misal bu primary key olabilir), rengi, ağırlığı, teknik özelliği vs vs olsun.

Form oluştururken sen sol üstte ürün adı olsun sonra hemen altında ürün kodu. rengi kutusu sağda olsun gibi konumlarını belirtiyorsun. Bunda da bir yığın detay var ancak yüzeysel olarak geçiyorum. Çözebileceğin şeyler bunlar. Çoktan seçmeli olsun tick box olsun gibi ayarlar ve kullanımları.

Sonraki aşama ise bu girdiğin bilgilerin işlenerek sana rapor olarak dökülmesi. Bu olay da tıpkı formlar gibi. Neyin nerede ve nasıl görünmesi gerektiğini belirtiyorsun ve yine gerekli sorgular sihirbaz raporu oluşturuken senin direktifinde otomatikman oluşturuluyor. Formlardan tek farkı burada bilgi girmiyor sadece var olan bilgileri alıyrsun.

Raporu oluşturduktan sonra sonucu ön izleme olarak açıyor access. Bu ön izlemeye sağ tıklayıp excel, word, html gibi formatlarda döküm alabiliyorsun. Daha doğrusu export yapabliyorsun.

Raporlara tablolarda bulunan her field'ı istediğin şekilde ve ilişkide (tabi kurduğun sürece) çağırıp döküm alabilirsin. Misal ürünün nasıl üretildiğine ve teknik özelliklerine ait bilgileri gösteren hali ile ürteciye bilgi geçerken ürün adı ve fiyatı'nı gösteren halini müşteriye geçebilirsin. Karışık bir cümle oldu ama anlatabildim sanıyorum.

Raporlamayla ilgili olark yapılan işlemlere ait tarih bilgilerini de alakalı tablolara işlenmesini sağlarsan raporlarını daha yararlı hale getirirsin.

Yüzeysel olarak toparlamaya çalıştım, belki konudan konuya atlamış olabilirim arada ama genel olarak bunlardan oluşuyor access'de DB tasarlamak.

Kolay gelsin.[signature][hline]In God I Trust
For Rest I Just Test
Link to comment
Sosyal ağlarda paylaş

O zaman anladığım çok çeşitli tablolar kurmam gerekiyor.
Tek tablo olmayacak.

Mesela burada benim
Talepler
Tedarikler
Malzemeler
Satıcılar
Fiyatlar
diye tablolar hazırlamam gerekiyor.
Hatta belki de miktarlar için de sanırım.
Bunları birbiriyle ilişiklendirmem gerekiyor.
Umarım doğru anlamışımdır.

Şimdi bunla başlıyim bari.
Link to comment
Sosyal ağlarda paylaş

Fiyatlar için gerekmiyebilir. Malzemelerin fiyatlarını malzeme tablosuna işleyebilirsin. Malzemeleri birleştirip bir ürün elde ediyor isen kullanılan malzemelerin fiyatlarının toplamını raporlarda o anda toplatıp sunabilirsin. Ya da tedarik tablosunda da toplatıp saklayabilirsin, ileride bu bilgiye tekrar ulaşmak istersen diye.

Diğerleri konusunda haklısın bu tablolar gerekecektir.[signature][hline]In God I Trust
For Rest I Just Test
Link to comment
Sosyal ağlarda paylaş

Malzemeler için:
Biliyorsun ki malzeme fiyatları türkiyede hiç sabit değil. Hergün farklı. Bazıları sabit gitse de genelde değişken oluyor.
Fiyat girmek çok öenmli olmasa da en son kaçtan almıştık daha önce ne kadardı
aa zam gelmiş
aaa düşmüş biraz daha pazarlık yapalım
tarzı konularda olursa iyi olur durumu söz konusu.
Bir de bazen ihtiyac olabiliyor.
Patron diyor
Hadi olm çıkar bakiim biz malzemeleri kaçtan alıyoruz
diye
o zaman tüm ürünlerin en son fiyatlarından oluşan bir fiyat listesi çıkarmak gerekeblir.
Bu bakımdan kurmıuşken onu da eklemek ileride sıkınılarımızı çözebilir.
Ya da fiyat değişimlerini görmek açısından bu seneki fiyatları dök de diyebiliriz.
Bu durumda gene de fiyatları tedarikte yapmakla hallolabilir mi?
Link to comment
Sosyal ağlarda paylaş

Tedariğe tarih eklersin ve o tarihte şu şu şu malzemeler ile oluşturulan ürün toplam bu fiyata gelmiş diye bir rapor dökebilirsin. Daha sonraları mazleme fiyatları değişirse bile o kayıt olduğu gibi kalır.

Ancak bu durumda dikkat etmen gereken malzeme ile tedarik tablolarını ilişkilendirirken yapılan güncelleme ve değişiklikleri ilişkili tabloda işlememesini sağlamalısın. Yani o seçenekler seçili olmamalı. Yoksa malzeme fiyatında yapacağın değişiklik güncel olmasa bile eski kayıtları da güncelliyecektir.

Edit: İkinci paragrafda bahsettiğim olay için relations'u açıp bir ilişki kurduğunda cascade update related fields ve cascade delete related fields seçeneklerini düzenlemen gerekiyor. Mevzu bahis durumda ikisi de seçilmemiş olmalı.
[signature][hline]In God I Trust
For Rest I Just Test

[Bu mesaj GE-TA tarafından 27 Eylül 2005 18:30 tarihinde değiştirilmiştir]
Link to comment
Sosyal ağlarda paylaş

Bu tablolari hazirlarken wizard kullanıyorum.
Kullandığım access 2000 Eng.
Bu tablolardaki başlıklarda türkçe karakter ve boşluk kullanımı ile ilgili bir problem veya sonradan başıma açılabilecek bir zorluk var mı?
Tablolarda sadece tanımlayıcı isimler verip sonradan raporlarda başka isimler ile görüntülemek/yazdırmak şeklinde mi yapmak daha mantıklı olur?

Tablolarim hazırlandığında yine buraya yazıcam tablolarda neler yaptığımı.
Link to comment
Sosyal ağlarda paylaş

Türkçe karakterlerin sorun çıkarma olasılığı var. Şöyle ki, bir tabloyu çağırırken ismi doğru olmadığı için bulamayabiliyor. Ama genelde çağırma işlemini wizardlarla yapacağın için bu sorunun önüne geçilmiş kabul edebilirsin. Tavsiyemi sorarsan yine de Türkçe karakter kullanma derim. Bunun dışında MS SQL'in girilen bilgilerde kullanılan Türkçe karakterlerle bile sorunları çıkabiliyor(du). "İbrahim" isimli işçinin bilgilerine "İ" yüzünden erişemediğim olmuştu. Bende "*brahim" diyordum. Örnekte olduğu gibi arama yaparken ya da eşleme durumlarında sorun yaşanabiliyor. Belki alakalı bir patch çıkarmışlardır.

Tabloda alan isimlerini form ya da rapor oluştururken istediğin isim şeklinde görünmesini sağlayabilirsin. Yani neyin ne olduğunu bildiğin sürece ali ahmet farketmiyor.

Yine aynı şekilde alan adlarını verirken boşluk kullanılabiliyor Access'de. Ama önce şu yazacaklarımı gözden geçir.

Araba parçaları adında bir tablo oluşturacağını varsayalım. Bize DB derslerinde bu tablo adını Araba_Parçaları şeklinde oluşturmamızı araya boşluk vermememizi boşluk verilecekse "_" kullanmamızı isterlerdi.

MS Access ise boşluk sorununu şöyle halletmiş. Boşluk kullanabilirsin ama bu boşluklu isme refere ederken başa ve sona köşeli parantez kullanacaksın ("[]") diyor.

Yani tabloyu oluştururken normal bir şekilde boşluklu olarak isim atıyorsun. "Araba Parçaları" şeklinde ve buna refere ederken ise [Araba Parçaları] demen gerekiyor.

Tablo alan adları için de aynı kural geçerli. Yani Araba Parçaları tablosunda Benzin Pompası adı altında bir alan oluşturursan ve bu alana refere etmek istersen:

[Araba Parçaları].[Benzin Pompası] şeklinde sorgulatma yapmalısın. Bize hocaların önerdiği şekilde olsa idi durum;

Araba_Parçaları.Benzin_Pompası şeklinde olacaktı.

Kolay gelsin.[signature][hline]In God I Trust
For Rest I Just Test
Link to comment
Sosyal ağlarda paylaş

Off herşeyi de buraya sormak zorunda kaliyorum galiba ama bu aldığım Access kitabı bir garip çıktı. Anlatıyor ve göya temel düzey ama bir acayip anlatıyor. Bir de türkçe Access 2003 anlatıyor iyice bulanıyor.

GE-TA gerçekten üşenmeden yazıyorsun çok çok çok teşekkür ederim. Valla verdiğin bilgiler olmasa ne yapardım bilmiyorum yaptıklarımı daha doğrusu yapmaya çalıştıklarımı kaç kere sislip yeniden yaptım söylediklerin doğrultusunda düzelterek. Şimdi tekrardan başlıcam. Çok sağol ellerin dert görmesin.

Access' te her şey için nerdeyse ID var. ID kullanmam gerekiyor mu?
Bir de şu Primary key olmasa da diğerleri yani secondary ya da combined key ne işe yarıyor?
Link to comment
Sosyal ağlarda paylaş

ID'yi eğer bir primary key tanımlanmadı ise sana bir primary key tanımlamadın senin yerine ben tanımlıyayım adı da ID olsun diye Access tanımlıyor. Primary key önemli çünki o olmadan referanslama verileri eşleştirme mümkün olmuyor.

Primary key tanımlamadan tablo oluşturabilirsin, ancak o veriler orada öyle kalır. Sanki excel'de tablo yapmış gibi olursun. Görüntü olur sadece.

Primary Key tablodaki o veriye ulaşmak için tanımlayacağın eşsiz anahtar özelliktir. Eşsiz diyorum zira o tabloda o anahtarın tekrarı kabul edilemez.

Secondary key primary key'e benzemekle beraber onun gibi eşisizlik özelliğine sahip değildir. Misal bir departmanda bulunan çalışanın TC kimlik numarası Primary Key iken ismi Secondary key olabilir. Böylece ismine göre bir grup çağırabilirsin. Böyle grup halinde bilgi almakta kullanılır Secondary key.

Combined Key ise Primary ya da Secondary Key tanımlarken birden fazla alanı kullanma durumunda kullanılan algoritma. Misal combined bir primary key oluşturmak istersek; AB123 kodunda bir ürünümüz var diyelim ve bunun 8 farklı rengi olsun. Eğer Primary key'e AB123 dersek sorun çıkar zira AB123'den 8 tane tekrar var. Rengi Primary key desek farklı ürün koduna sahip aynı renkte ürünler olabilir. O zaman biz de ürün kodunu ve rengini birleştirip combined key oluşturuyoruz ve buna Primary Key diyoruz. İşte sana combined bir Primary Key.

Bak bu örnekte aynı zamanda sana bir secondary key örneği de vermiş oldum. Burada AB123'ü secondary key olarak kullanabilirsin. Sadece bu 8 farklı renkteki ürünleri çağırmakta kullanmak için.

Aynı zamanda Secondary key de combined olabilir. Hmm bunu sana ev ödevi olarak veriyorum. ;)[signature][hline]In God I Trust
For Rest I Just Test
Link to comment
Sosyal ağlarda paylaş

Ben söyle anlatayım bir de ondan sonra yaptıklarımı söyliyim.

Bize talepler Talep Fişleriyle geliyor.
TAlep Fişlerinde gerekli bilgiler:
Talep Fiş No
Talep Tarihi
Talep Eden Departman
Talep eden kişi
Malzeme(ler) -->Bir kaç kalem oluyor tabii
Miktar
Birim
Açıklama


Daha sonra bu talebe göre çeşitli yerlerden teklifler alıyor ve o malları onay verildigi takdirde siparis ediyoruz.

Daha sonra malzeme geliyor.
Bunu da irsaliyeden görüyoruz.

Fakat problem her gün çeşit çeşit malzeme, çeşit çeşit ebat ve özelliklerde talep ediliyor.
Bunların ne kadarı geldi kim istemişti, kime gitti az geldi yeniden siparis çok geldi ise depoda sonraki talepde ihityac olana yönlendirme yapmam gerekiyor.
Bunun yanında küt diye patron biz ne alıoruz nerden alıyoruz en son kaca aldık liste çıkarın da diyebiliyor ki binlerce cesit malzeme ve cesit cesit ölcü ve özelliklerde kullandığımızdan dolayı bunu çıkarmayı da kolaylaştırmak istiyorum.
Kısacası belge yıgını var ve bunun altından kolayca cıkmam lazım.
Her seyi tek tek girip ondan sonra ordan oraya bulmam gerek.
Elimdekiler ise
Bir adet ahı gitmiş vahı kalmış yıllarca kullanılmış üzerinde 32 ram olan celeron win98i zor calıştırabilen bir makina ve office 2000 pakedi.
Diyeceksiniz ki muhasebe programı bunu yapmıyor mu
yapabilir ama bu makina kaldırmıyor o muhasebe programını ve bana yeni bir bilgisayar almaya niyetleri ve muhasebe programını kullandırmaya da niyetleri yok.
Bunların takibini de yapmam lazım ki bilgisayar kullanmam kullanmamam umurlarında değil yeterki takip olsun.
Sonuc beni herhalde access kurtarır.
Link to comment
Sosyal ağlarda paylaş

Şimdi son yazdıklarına göre de bir şekil verip tablolari yazıcam ama yine işler çıktığından birazdan yazabilirim herhalde.
Ona göre yanlışım var mı söylersen sevinirim.
Amma zor işmiş bu yaa
Herhalde bunu çözersem her şeyi çözerim.
Şeytan diyor bul bir korsan program onu kullan.
Off ki off
Link to comment
Sosyal ağlarda paylaş

Tabloları düşünelim. Neler gerekebilir?

Fiş tablosu:
- Fiş numarası (PK)
- Departman
- Kişi adı
- Telefonu vs vs

Talep Bilgi Tablosu:
- Talep Numarası (PK)
- Talep Tarihi
- Fiş numarası
- Beklenen fiyat aralığı??
- Dead line??

Talep Edilen Malzemeler Tablosu
- Talep Numarası
- Malzeme Sıra No (PK)
- Malzeme özellik 1
- Malzeme özellik 2, 3, 4 artık ne kadar istersen. Sınıflandıramayacağın kadar çok özellik varsa sadece 1 alan oluştur ve memo olarak tanımla.

Tedarik Tablosu:
- Tedarik Numarası (PK)
- Talep Numarası
- Tedarik Tarihi (Burada Malzemenin değil bu tedarik bilgilerinin oluşma tarihi mevzu bahis.)

Tedarik Edilen Malzeme Tablosu:
- Talep Numarası
- Tedarik Numarası
- Malzeme Sıra No (Bu üç satır birlikte combined PK) *
- Firma
- Fiyat
- Teslim Tarihi (işte burada malzeme tedarik tarihi)

Basit olarak böyle bir tablolama olabilir bence. Dikkat etti isen bir tablonun PK'sını bir başka tabloda refere ediyorum. İlişkiler oluşturulurken bu tarz bir yöntem izlemelisin.

Bunun dışında 32 Ram'li bir celeron makinada allah kolaylık versin. Bu programı kodlarsan patronuna böyle bir programın piyasada özel olarak yaptırırsak şu kadar para eder bana şu kadar para verip güzel bir makina alın da beleşe getireyim programı diyebilir, mırrrr bana ciğer alın diyebilirsin. :-P

*: Burada bir foreign key örneği görüyorsun. Tablonun kendine ait bir Primary Key'i yok ancak diğer tabloların PK'larının birleşimi ile bir PK oluşuyor. Ek bilgi çok bilgi. :D[signature][hline]In God I Trust
For Rest I Just Test
Link to comment
Sosyal ağlarda paylaş

Ge-Ta
Verdiğin bilgiler gerçekten çok çok güzel. İnan bana Microsoft Press olan kitap senin anlattığının yüzde 1' i kalitesinde anlatsaydı buraya soru sormama gerek kalmazdı. Çok sağol ellerin dert görmesin.

Hazırladığım bölümü anladığım ve kurduğum mantık ile anlatayım:

TALEP FİŞLERİ
TalepFisNo (PK) (*)
TalepFisTarihi
TalepEdenDepartman
TalepEdenKisi

MALZEME
MalzemeNo (PK)
MalzemeAdi
KategoriNo
MalzemeInfo
EkInfo

MALZEME KATEGORILERI
KategoriNo (PK)
KategoriAdi

SATICILAR
SaticiNo (PK)
FirmaAdi
IlgiliKisi
TelKodu

SEHIRLER
TelKodu (PK)
SehirAdi

Kurdugum ana mantık su.
Sozgelimi bir talep fis numarasında sadece bir adet fiş olabilir. Tabii ki buna baglı tarih de talep eden departman da Talep eden kişi de bir kişi olabilir. Yani bir TalepFisNo aslinda Belli bir tarihte bellibir departmandaki belli bir kişiden gelen bir fiştir. O da bir ID alır. Onu da ben veriyorum uzerinde damga ile bastığım sayı numarası ile.
Bir talep fişinde birden çok madde oluyor. Yani farklı özelliklerde aynı ya da farklı kategoride aynı ya da farklı malzemelerden çeşitli ölçülerde çeşitli miktarlarda.
Belli bir özelliğe sasahip her malzeme bir ID alacak. Mesela
MalzemeAdi : Zincir
MalzemeInfo: 70x35x10mm
EkInfo : Mavi Renk
Bu bir ID alacak ve bundan sonra bir daha istendiğinde bu ID numarası sadece bu mamulu anlatacak. Bu mamul aslında bir kategoriye ait olabilir gibi görünse de bazı durumlarda değişebilir. Bir sipariş ile ilgili kullandığımızda ayrı kategori ama aynı zincir belki de üretimde kullanılan bir makinanın parçası değiştiğinde sarf malzeme kategorisine ya da bakım onarım kategorisine dahil olabilileceği için aslında o tabloda (Malzemeler) biraz takıldım. Her ihtimale karşı Malzeme Kategorileri diye ayrı bir tablo yaptım. Burada Aslında takıldığım nokta şu:
Şimdi yukardaki örnekteki zincir bir ID oluşturdu. Ama buna bir de kategori eklediğimiz zaman belli kategoriye ait belli özelliklerdeki belli bir malzeme tek bir ID alacak. Ama aynı özelliklerde aynı mamul farklı kategoride olduğunda farklı ID alacak. Şimdi böyle olunca bana belli kategorideki fiyat listwsini çıkar dediğimde çıkarması kolaylaşacak ama diğer taraftan sözgelimi özelliklerini göz önünde bulundurmadan mesela sadece zincirleri göster dediğimde de bu yolla listeliyebilceğim.
Doğru mudur?

Yukarıda söylediğim mantık ile de diğerlerini geliştirmeye çalıştım.

Ama son noktadayı hala biraz kurcalıyorum desem yeridir. Özellikle talepler ve tedarikler kurgusunu yapmak kasıyor açıkcası.
Kasma nedeni ise şu.
Mesela Kurdugum tabloyu yazmak gerekirse

TALEPLER
TalepNo
TalepFisNo
MalzemeNo
TalepMiktari
MiktarCinsi (mt.kg.plaka.boy.bakla.adet)
Açıklama
şeklinde kurdum.
Belli talep fisindeki belli bir malzeme talebi girilecek miktarda istenmiş ve o bir ID oluşturmuş. Açıklama ise tamamen bağımsız yani surada kullanılacak ya da 10 cm 10 arcm kesilip gelsin gibi cesitli bilgiler girilecek ki sonradan ben onu nerde kullandık ne yaptık bilebileyim diye kucuk notlar.
Burada takıldıgım konu tedarik konusunda oluyor.
Belli bir talep var. IDsi belli.
Talep karşılanmış. Mesela 100m istenmiş ve ve gelmiş. Ya da 80m gelmiş 20m eksik var. Geri kalanının da gelmesi gerek. Ya da 120m gelmiş. Artan 20m belli bir açıklama girilerek nerede depolandığı gözükebilir ki bu bizde artı bir değerdir. Daha sonradan gelecek talebi ordan yönlendirebilirim.
Bunun için tedarikler tablosunu kurmam biraz karışık hal aldı aslında.

Biraz karışık anlattım galiba.
Umarım anlatabilmişimdir


* TalepFisNo otomatik olarak verilmeyecek. Elimdeki talep fisine gore benim elle girmem daha uygun olucak.
Link to comment
Sosyal ağlarda paylaş

Mesajını daha evel okudum ancak cevap verme şansım olmadı. Cevap anca bu saate denk geldi. Neyse sorularına gelirsek:

Sadece zincirleri getir diyerek çağırman mümkün elbette. Yani Malzeme adı alanına "zincir" diye girilmiş tüm verileri çağırabilirsin, ki buna ek olarak o zincirin hangi kategoride kullanıldığına dair bilgilere de ulaşırsın, lakin şöyle bir durum da söz konusu. Eğer kullanıcı bilgileri girerken zincirlerden bir tanesini "zıncir" ya da "zincır" olarak girerse bu farklı olan giriş ya da girişler sana verilmeyecektir. İnsaflı olalım birlgisayar mantığına göre farklı bir veri girdin. Zıncir zincir değildir. Tabi işin detayında eğer Türkçe karakter de kullanılmışsa iş daha da zorlaşıyor zira "ZİNCİR" de "zincir" değildir.

Tedarik konusunda ise şöyle bir fikir sunabilirim. Talebe cevap olarak sunulan tedariğin yeterli olup olmamasını kullanıcıya bırakırsın. Yani şöyle ki, bir tickbox koyarsın ve adına da talep karşılanmıştır dersin. Eğer bu tick işaretlendi ise o talep pasif konuma geçer. Eğer işaretlenmedi ise aktiftir. Bir de memo box koyarsın. İçerisine sadece tedariğin durumunu belirten bilgi girilmek üzere.

Böylece 80 istenmiş de 60 verilmiş ise tick işaretli değil ve kalan 20'nin gelmesi bekleniyor diye memo box'a not düşülür. Ya da 80 istenmiş de 100 gelmiş ise tick işaretli memo box'da ise 20 fazlamız var diye not düşülebilir.

İlerliyen tarihlerde başka biri 20 zincir daha isterse pasif konumdaki eski zincir taleplerin tedarik memo box'ları arama ile getirilir ve olası talep buradan karşılanabilir ve bu sefer bu talebin tedarik tickbox'ı işaretlenip memo'suna şu talebin tedariğinden artan fazla malzeme kullanılmıştır denilebilir. Tabi bu durumda o eski talep de ki memo box bir sonraki arama sırasında sorun çıkarmaması için güncellenmeli.

Daha güzel bir alternatif olarak, tablonda talep miktarı diye bir kısım açtığını şimdi farkettim de :), aynı tabloda tedarik miktarı diye bir alan açıp alınan malzeme miktarını buraya işlenmesini sağlayıp programın otomatik olarak fark hesabı yapmasını ve tam veya fazla mal alımında talep karşılandı tick box'ını otomatik işlemesini ve fazla malzemeyi bir başka alanda saklamasını sağlayabilirsin. Koyacağın ikinci bir tickbox ile eğer ileride başka bir talepte bu fazlalığı kullanırsan bu farkın silinmesini sağlayabilirsin.

Biliyorum çok karışık oldu. Amacım öc almaktı. Senin anlatımında neler çektiğimi umarım anlamışsındır. :)

Ama ben ek olarak örnek ile anlatacağım. Sanıyorum bu anlamanda yardımcı olur.

Talepler Tablosu:

TalepNo
TalepFisNo
MalzemeNo
TalepMiktari
MiktarCinsi (mt.kg.plaka.boy.bakla.adet)
Açıklama

Olarak yapmışsın ben buna ek olarak şunları sunuyorum:

TedarikMiktarı
TalepKarşılandı (Yes/No yani tickbox)
TedarikteFazlalıkVar (yine tickbox)
TedarikDurumu

Nasıl işleyecek? Şöyle:

TalepMiktarı: 80 girilmiş olsun. Daha sonra tedarik yapılsın ve TedarikMiktarı'na 100 girilsin. O zaman TalepKarşılandı ve TedarikteFazlalıkVar tickleri işaretlenecek ve TedarikDurumu'na 20 girilecek.

TedarikMiktarı olarak 80 girilirse sadece TedarikKarşılandı tickbox'ı işaretlenecek. TedarikDurumu 0 olacak. Eğer TedarikMiktarı 60 ise, TedarikDurumu -20 olacak ve hiçbir tickbox işaretlenmeyecek.

Bu işlemi kullanıcı da yapabilir ya da Access'de TedarikMiktarı giriş ekranı özelliklerinin Event kısmındaki AfterUpdate'e bir VB codu eklersin. Bu kod TalepMiktarı kutusu ile TedarikMiktarı kutusundaki verileri karşılaştırır ve gerkli tickbox'ları ve TedarikDurumu textbox'ını kendisi otomatik olarak günceller.

Eğer bir başka talebi fazla tedarik yapılarak sonlandırılmış işlemin fazla malzemesini kullanarak yapıyorsan da eski talepdeki TedarikFazlalığıVar tickbox'ını devre dışı bırakacaksın ve işlem devam edecek.

Valla hocam bu saatte bundan daha açık inan anlatamam. Sen bir oku, eğer anlıyamadığın bir kısım varsa sor bir daha anlatmaya çalışayım.

Sabırlıyımdır merak etme, eski patronumun 35-40 yaşlarındaki "sarışın" eşine bilgisayar dersi vermiştim. Burada görünmüyor ama "sarışın" kelimesinin altında 300 tane çizgi var.

Edit: Tedariğe ait bilgiler talep tablosuna girilecek ayrı bir tabloya değil.

Edit2: Çizgi sayısını 300 yazmışım 3000 olacaktı... :hmm:


[signature][hline]In God I Trust
For Rest I Just Test

[Bu mesaj GE-TA tarafından 02 Ekim 2005 03:39 tarihinde değiştirilmiştir]

[Bu mesaj GE-TA tarafından 02 Ekim 2005 03:41 tarihinde değiştirilmiştir]
Link to comment
Sosyal ağlarda paylaş

Valla ben de yeni bir kaitap daha aldım eskisine göre daha iyi. En azından bir şeyler öğrenebiliyorum ordan.
Onu da okuyorum bir taraftan.
Şimdi tablolara başlayım bir de yazını özümseyeyim o zaman sana daha detaylı bir şeyler sorucam.
Bazı şeyler kafamda çözdüm ama kitapta var mı yokmu araştırıyorum. YOk olanları sorayım.

Bu arada
tabloların düzenini kurmak
bu işin en zor yanı mı
yoksa
en kolayı da beni mi kasıyor daha sonra yamulucam da haberim yok mu?
Link to comment
Sosyal ağlarda paylaş

Hemen aklıma gelmişken bir soru sorayım.
Mesela diyelim formu hazıladım tabloları hazırladım. Veri girişi yapıcam. Mesela taleplere giricem.
Formda TalepFisNo' yu girdim Malzeme ismine geldi sıra. Zincir yazıcam ama daha once Zincir girip de MalzemeID aldım mı hatırlamıyorum. Malzeme boşluguna geldigimde mesela zin* yazıcam CTRL+S yapıcam karşıma zin ile başlayan daha önce girdiğim şeyler çıkacak. Onlardan birisi özellikleri uyan zincir ise ok.licem malzeme boşlugunda yer alıcak yok eğer daha önce girilmediyse ya malzeme boşlugunu yeni girdigim DBye eklenecek ya da CTRL+N diyip giriş yapıcam. Muhasebe programlarındaki gibi yani.
Böyle bir şey yapılabiliniyor mu?
Eğer yapılabiliniyorsa ona göre bir mantık bulup o şekilde geliştirebilirim olayı da o yüzden.

[Bu mesaj ghaldszar tarafından 03 Ekim 2005 16:08 tarihinde değiştirilmiştir]
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...