Bilgi Aktarma

Katılım
3 Ekim 2004
Mesajlar
20
Excel Vers. ve Dili
2003-2007
Tablo1 deki kadroyu boşalt tuşuna basınca Kadro Durumu Değerini Boş yapacak ve Adı soyadı Kurum Sicil No Öğrenim Durumu ve Cinsiyeti Değerlerini Boşaltarak tablo2 ye aktaracak. Yine Tablo 2 de bulunan Aktarılacak Kadro değerine yazacağım kadro numarasına görede kadroyu aktar tuşuna basınca tekrar tablo1 de bulunan kadro durumu dolu ve yine numarasına göre değerleri yazacak bir formül arıyorum. Bir türlü beceremedim yardımcı olurmusunuz.
 
Katılım
3 Ekim 2004
Mesajlar
20
Excel Vers. ve Dili
2003-2007
ozan akkaya arkadaşım eline emeğine sağlık çok güzel bir program yapmışsın okadar güzelki içinde gerçekten çok kod var yararlanacağım ancak arkadaşım ben tayin olanlar kısmına gerekli kodu alıp kendime uyarlamaya çalıştım ancak okadar karışık kod varki ben anlayamadım. daha doğrusu benim kapastem anlamaya yetmiyor

benim eklediğim forma basit bir şekilde uygularsanız memnun olurum.

bu arada yaptığınız programda tayin olanlara atmayı halletmişsiniz ama biliyorsunuz bendeki daha farklı kadro numarasına aktarma

malesef tek taraflı olarak oluyor ama gerisin geriye başka kadroya atama olmuyor. bendeki olay kadroyu boşaltınca kişiyi askıya alma sonra başka kadroya gönderme olmalı
 
Son düzenleme:
Katılım
22 Ocak 2007
Mesajlar
815
Excel Vers. ve Dili
2003
bu programın asıl hali değil asıl halini koy yani yaptığın çalışmanın tamamını bundan sonra böyle bir karar aldım kişi yaptığı çalışmayı paylaşmazsa sorusunu yanıtlamıyorum şu an koyduğun örnek saedece senin sorunu cevaplamaya yetecek kadar olan kusura bakma bu senin için aldığım bir karar değil burası paylaşım platformu ama kişiler başkalarının emeği ile para kazanıyorlar ve ben bunu sevmiyorum burda sadece çalışmasının sorunlu kısmını örnek olarak ekliyor ve sonrada bunu çözün çünkü ben bunu satıp 100$ yada 200 1000$ alacam demiyor ama bunu formda ben buna benzer bir sürü program yaptım sattım diyor ama burdaki acemilere yardıma gelince tık yok o nedenden dolayı yaptığı çalışmanın tamamını eklemeyenin sorusuna yanıt vermiyorum senin sorunu yaptım çalışmanın tamamını ekle cevabı ona uyarlayıp tekrar ekleyeyim
 
Katılım
3 Ekim 2004
Mesajlar
20
Excel Vers. ve Dili
2003-2007
Gülsüm Hanım dediğinizde haklısınız. anlıyorum sizi. konuyu daha basit anlatan bir örnek koymuştum yoksa konunun özü dağılıyordu. dosyam ektedir.
ilginize teşekkür ederim.
 
Son düzenleme:
Katılım
22 Ocak 2007
Mesajlar
815
Excel Vers. ve Dili
2003
öncelikle o örneği kaldırıp içindeki kişilerin gerçek bilgilerini sil öyle tekrar ekle
 
Katılım
22 Ocak 2007
Mesajlar
815
Excel Vers. ve Dili
2003
cevap

öncelikle aktardığın tablo alanları ile aktarma yapacağın tablo alanları aynı olmalı ve alanlardan biri bile boş olsa arıza verir çünkü kayıtları dolanarak aktarma yaptığından birini alırken burda veri yok derse arıza verir
şimdi kodlara geçelim
önce aktarma kodu
Private Sub Komut18_Click()
'burda rs diye bir kayıt açıyorum
Dim rs As New ADODB.Recordset
'burda rs1 diye bir kayıt açıyorum
Dim rs1 As New ADODB.Recordset
'açtığım rs adlı kayda Tablo1 atıyorum
rs.Open "Tablo1", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
'açtığım rs1 adlı kayda Tablo2 atıyorum
rs1.Open "Tablo2", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
burda rs adlı kaydın yani Tablo1 de veri varmı yokmu onu kontrol ediyorum
If rs.EOF <> True Then
Do
burda rs adlı kayıtta kadro durumunu sorguluyorum
Select Case rs("KadroDurumu")
burda rs adlı kayıtta kadro durumununda boş olanları ayırıyorum
Case "BOŞ"
burda rs1 yani tablo2 açarak
With rs1
Tablo1 deki boş olan kayıtları Tablo2 e yeni kayıt olarak ekliyorum
.AddNew
.Fields("TCNo") = rs("TCNo")
.Fields("AdıSoyadı") = rs("AdıSoyadı")
.Fields("KurumSicilNo") = rs("KurumSicilNo")
.Fields("OgrenimDurumu") = rs("OgrenimDurumu")
.Fields("Cinsiyeti") = rs("Cinsiyeti")
olaki aynı kayıt varsa onu ekleme değil güncelliyorum
.Update
End With

End Select
burda tablo1 deki kayıtlar bitene kadar bu işlemleri döndürüyorum
rs.MoveNext
Loop Until rs.EOF
End If
aktarma işlemleri bitince her iki kaydı rs ve rs1 yani tablo1 tablo2 kapatıyorum
Set rs = Nothing
Set rs1 = Nothing
Set conn = Nothing
burda aktarılmış olan kayıtları silen fonksiyonu çağırıyorum
Call sil
burda formu yeniliyorumki tablodan silinen veriler formda görünmesin
DoCmd.Requery
End Sub

yukarda anlattığım gibi tablo açma recordset yapma yani rs.open yapma aynı burdaki tek fark tablo2 aktardığımız kayıtlara bakarak tablo1 den o kayıtları silmek ne yaptık önce kadro durumu boş olanları tablo1 den tablo2 ye aktardık sonrada o tablo2 ye aktardığımız kayıtlara bakarak tablo1deki önce aktardığımız kayıtları sildik bunu TcNo alanlarını karşılaştırarak yaptık
Function sil()
Dim rs As New ADODB.Recordset
Dim rs1 As New ADODB.Recordset
rs.Open "Tablo1", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs1.Open "Tablo2", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

If rs.EOF <> True Then
Do
If rs("TCNo") = rs1("TCNo") Then
rs.Delete
End If
rs.MoveNext
Loop Until rs.EOF
End If
Set rs = Nothing
Set rs1 = Nothing
Set conn = Nothing
End Function

diğer işlem yani tablo2 den tekrar tablo1 aktarma ise bunun tersi
Private Sub Komut13_Click()
On Error GoTo Err_Komut13_Click

Dim rs As New ADODB.Recordset
Dim rs1 As New ADODB.Recordset
rs.Open "Tablo1", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs1.Open "Tablo2", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

If rs1.EOF <> True Then
Do
With rs
.AddNew
.Fields("TCNo") = rs1("TCNo")
.Fields("AdıSoyadı") = rs1("AdıSoyadı")
.Fields("KurumSicilNo") = rs1("KurumSicilNo")
.Fields("OgrenimDurumu") = rs1("OgrenimDurumu")
.Fields("Cinsiyeti") = rs1("Cinsiyeti")
.Fields("KadroDurumu") = "DOLU"
.Fields("Kadrono") = rs1("Kadrono")
.Update
End With


rs1.MoveNext
Loop Until rs1.EOF
End If
Set rs = Nothing
Set rs1 = Nothing
Set conn = Nothing
Call sil1
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70

Exit_Komut13_Click:
Exit Sub

Err_Komut13_Click:
MsgBox "KAYITLAR AKTARILDI VE ESKİLER SİLDİM GİTTİ ATTAAAA GİTTİİİİİ"
Resume Exit_Komut13_Click
End Sub
Function sil1()
Dim rs As New ADODB.Recordset
Dim rs1 As New ADODB.Recordset
rs.Open "Tablo1", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs1.Open "Tablo2", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

If rs.EOF <> True Then
Do
If rs1("TCNo") = rs("TCNo") Then
rs1.Delete
End If
rs.MoveNext
Loop Until rs.EOF
End If
Set rs = Nothing
Set rs1 = Nothing
Set conn = Nothing
End Function
 
Katılım
3 Ekim 2004
Mesajlar
20
Excel Vers. ve Dili
2003-2007
G&#252;ls&#252;m Han&#305;m dedi&#287;im nispeten olmu&#351; ancak biraz eksik.

&#350;&#246;yleki.

Tablo1 de;

&#214;ncelikle kadro durumu dolu ise aktar&#305;m yapacak yoksa yapmayacak. memuru aktar dedi&#287;imizde kayd&#305;n

Kadrono alan&#305; (aynen duracak)
kadro durumu alan&#305; (Doluydu Bo&#351; olacak)
&#220;nvan&#305; alan&#305; (aynen duracak )
Kadro derecesi (aynen duracak)

aktar&#305;lacak olan bilgiler

tc no
ad&#305; soyad&#305;
kurum sicil no
&#246;&#287;renim durumu
cinsiyeti

bu alanlar aktar&#305;lacak


aktar&#305;m&#305; yap&#305;lan ki&#351;i formunda ise Tablo2

aktar&#305;m&#305; yap&#305;lacak kadroyu yaz&#305;nca tablo 1 deki kadro durumu bo&#351; ise akatar&#305;m yapacak yoksa i&#351;lem iptal oalacak

kadro dolu oldu&#287;undan aktaramazs&#305;n&#305;z diyebilir.

Tablo 1 de bulunan kadro numaras&#305; na memur bilgileri eklenecek bo&#351; yazan kadro durumuda doluya d&#246;necek

buradaki ama&#231; kadro numaras&#305;na memuru atamak.

yani k&#305;saca &#351;&#246;yle diyeyim sabitlerimiz kadro bilgileri de&#287;i&#351;kenlerimiz memur &#246;zl&#252;k bilgileri.

sabit bilgilerde bir de&#287;i&#351;iklik olmayacak.
ilgili kadro de&#287;i&#351;mez ama kadrodaki memur de&#287;i&#351;ebilir.

Tablo 1 de ve tablo 2 de alanlar bo&#351; olsa dahi aktar&#305;m&#305; yapmal&#305; bazen memurun bilgisi ilgili alanda olmaya biliyor.
 
Son düzenleme:
Katılım
22 Ocak 2007
Mesajlar
815
Excel Vers. ve Dili
2003
ben ne yapmak istedi&#287;ini anlamad&#305;m o nedenden dolay&#305; anlad&#305;&#287;&#305;m &#351;eyi yapt&#305;m e&#287;er uzun uzad&#305;ya bir a&#231;&#305;klama yaparsan dediklerini yapmak kolay asl&#305;nda sen de yapars&#305;n ben sil ile sildirdim sen sildirmeyi kald&#305;r&#305;p sadece alanlar&#305; bo&#351;altabilirsin
 
Katılım
3 Ekim 2004
Mesajlar
20
Excel Vers. ve Dili
2003-2007
Daha detaylı şöyle anlatayım

bir dairede çalışanın kadro bilgileri ve özlük bilgileri vardır.

bir devlet memurunun çalışa bilmesi veya atana bilmesi için o kadronun oraya tahsisi vede boş olması gerekmektedir.

yani öncelikle memur olmaya bilir ama kadro bilgileri daima vardır.

bunlarda şunlardır

kadro no
kadro ünvanı
kadro derecesi
kadro durumu
gibi

bunun yanında özlük bilgileri vardır
bu kadroya kim atanacak
adı nedir
doğum yeri tarihi nedir
erkek midir bayanmıdır
gibi

bir kadroya gelen memurun özlük bilgilerini yazarsak dolu hale gelir ve buraya başkası yazılamaz her kadro tektir başka yoktur.

bizim amacımız bazen memurun 330001 nolu kadrodan 330065 nolu kadroya atamamız gerekiyor.
o yüzden yer değişikliği yapmamız gerekiyor.
 
Katılım
22 Ocak 2007
Mesajlar
815
Excel Vers. ve Dili
2003
tamam sen yinede benim yapt&#305;&#287;&#305;m&#305; istiyorsun ama bir kadro diye bir tablo yapars&#305;n ve o tabloya sizin kuruma o kadrodan ne kadar tahsis edildi&#287;i ve ne kadar&#305;n&#305;n kullan&#305;ld&#305;&#287;&#305; olur ki&#351;iler tablosunda kadro numaras&#305; olur ve biz o numaralar&#305; sayd&#305;rarak tahsis edilen kadrodan d&#252;&#351;eriz ve kullanabilece&#287;in kadro miktar&#305;n&#305; veririz ki&#351;iler tablosundan iki tane olur biri bo&#351; kadrolar&#305;n tutuldu&#287;u tablo di&#287;eride dolu kadrolar&#305;n tutuldu&#287;u tablo ve yine benim verdi&#287;im kodlarla ki&#351;ileri doludan bo&#351;a &#231;evirisin ve aktar dedi&#287;in zaman bo&#351;lar tablosuna aktar&#305;r ve dolu tablosundan o ki&#351;ileri siler bo&#351;lar tablosundan ki&#351;ilere hangi kadroya aktaracaksan o kadrolar&#305; yazars&#305;n sen her ki&#351;ye kadro yazd&#305;k&#231;a dolu tablosundaki o kadrolar&#305; sayar ve senin yazd&#305;klar&#305;n&#305;da &#252;st&#252;ne ekler kadro tablosundaki tahsis edilmi&#351; kadro ile kar&#351;&#305;la&#351;t&#305;r&#305; ve senin o kadroya fazla kadro yazman&#305; engeller ama b&#252;t&#252;n bunlar benim verdi&#287;im kod ile yap&#305;l&#305;r birde &#351;unu s&#246;yle 330001 nolu kadro tek ki&#351;ilikmidir yani bu kadroya ba&#351;ka ki&#351;i eklenebilirmi
 
Katılım
3 Ekim 2004
Mesajlar
20
Excel Vers. ve Dili
2003-2007
evet her kadro tek kişiliktir. başkası yazılamaz.

kadroya memuru atayınca başka bir memur atanamaz.

atana bilmesi için o memuru başka bir yere atamak o dolu kadroyu boşalttınca anca başka kişiyi atayabilirsin.
 
Katılım
3 Ekim 2004
Mesajlar
20
Excel Vers. ve Dili
2003-2007
tamam sen yinede benim yaptığımı istiyorsun ama bir kadro diye bir tablo yaparsın ve o tabloya sizin kuruma o kadrodan ne kadar tahsis edildiği ve ne kadarının kullanıldığı olur kişiler tablosunda kadro numarası olur ve biz o numaraları saydırarak tahsis edilen kadrodan düşeriz ve kullanabileceğin kadro miktarını veririz kişiler tablosundan iki tane olur biri boş kadroların tutulduğu tablo diğeride dolu kadroların tutulduğu tablo ve yine benim verdiğim kodlarla kişileri doludan boşa çevirisin ve aktar dediğin zaman boşlar tablosuna aktarır ve dolu tablosundan o kişileri siler boşlar tablosundan kişilere hangi kadroya aktaracaksan o kadroları yazarsın sen her kişye kadro yazdıkça dolu tablosundaki o kadroları sayar ve senin yazdıklarınıda üstüne ekler kadro tablosundaki tahsis edilmiş kadro ile karşılaştırı ve senin o kadroya fazla kadro yazmanı engeller ama bütün bunlar benim verdiğim kod ile yapılır birde şunu söyle 330001 nolu kadro tek kişilikmidir yani bu kadroya başka kişi eklenebilirmi

Dediğinizi yapmaya çalıştım ama bu şekilde olmuyor gülsüm hanım ozaman raporlamalarda kopukluk olup hesaplatamıyorum.

tablo 1 de aktif bilgilerde kadro bilgilerine dokunmadan memur bilgilerini Tablo 2 ye aktarmak daha sonrada aktardığımız Tablo 2 den kadro numarasını yazdığımız değer göre sorgulayıp eğer kadro boşsa tablo 1 e atmalı
 
Katılım
3 Ekim 2004
Mesajlar
20
Excel Vers. ve Dili
2003-2007
Bilgi Aktarmada Değerli Üstadımız Gülsüm1 e yardımların dan dolayı çok teşekkür ediyorum. Bilgi aktarmanın son hali ektedir.
 
Üst