AccessTr.neT
devamlı tekrarlanan iki alan yerine kod alanı ekleyip yazmak - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: devamlı tekrarlanan iki alan yerine kod alanı ekleyip yazmak (/konu-devamli-tekrarlanan-iki-alan-yerine-kod-alani-ekleyip-yazmak.html)

Sayfalar: 1 2 3 4 5 6 7


Cvp: devamlı tekrarlanan iki alan yerine kod alanı ekleyip yazmak - HSayar - 11/01/2011

sn ALPEKİ ilgili dosya aşağıdaki linktedir.

https://accesstr.net/attachment.php?aid=11932

orjinal dosyada tablo adını güncellediğim için dediğiniz gibi bir problem oluşmuş.

öncelikle ekli dosyada bulunan tbl2010 adlı tabloya NKO_ILCEKOD adlı bir alan ekleyiniz.
bu tablodaki kayıtlardaki NKO_IL ve NKO_ILCE alanları mutlak doludur. bu veriler ile YRD_tblILCEKOD tablosundaki ILCEADI ve ILADI alanları eşleşiyorsa kaydın tbl2010 .NKOILCEKODU alanına YRD_tblILCEKOD.ILCEKODU alanındaki değer gelsin.

Yani tbl2010 da ilçe adı abana il adı Kastamonu olan kayıtları YRD_tblILCEKOD tablosundan bak ve 1101 değerini tbl2010.ılcekodu alanına yaz.









Cvp: devamlı tekrarlanan iki alan yerine kod alanı ekleyip yazmak - alpeki99 - 11/01/2011

Şimdi daha net anladım. Üzerinde çalışalım bakalım ne sonuç elde edeceğiz.


Cvp: devamlı tekrarlanan iki alan yerine kod alanı ekleyip yazmak - alpeki99 - 12/01/2011

1 saat 40 dakikadır yazdığım kod neden çalışmıyor diye kafayı yerken sağolsun Seruz hocam yardım isteğimi geri çevirmedi. Kodda problem yokmuş sizin YRD_tblILCEKOD alanınızdaki ilçe isimlerinden sonra 1 adet boşluk karakteri varmış.

Örnek olarak EDİRNE KEŞAN kaydında KEŞAN'ın sonundaki boşluk karakterini silip test edebilirsiniz. Boş bir form oluşturun ya da bu iş için uygun bir formunuzda 1 adet buton yerleştirin. Butonun tıklanma olayın aşağıdaki kodu yapıştırın:


Dim kaynak_tablo_sql, hedef_tablo_sql, hedef_id, islem_sql As String
Dim sira As Integer
Dim ks As ADODB.Recordset
Set ks = New ADODB.Recordset

DoCmd.SetWarnings False

kaynak_tablo_sql = "SELECT VATNO, NKO_IL, NKO_ILCE FROM tbl2010"
ks.Open kaynak_tablo_sql, CurrentProject.Connection, adOpenStatic, adLockReadOnly

If Not ks.BOF And Not ks.EOF Then

If ks.EOF <> True Then

Do

With ks

ilimiz = .Fields("NKO_IL")
ilcemiz = .Fields("NKO_ILCE")

hedef_id = Nz(DLookup("ILCEKODU", "YRD_tblILCEKOD", "ILADI='" & ilimiz & "' AND ILCEADI='" & ilcemiz & "'"), "-")

islem_sql = "UPDATE tbl2010 SET NKO_ILCEKOD='" & hedef_id & "' WHERE VATNO='" & .Fields("VATNO") & "'"

DoCmd.RunSQL islem_sql

ks.MoveNext

End With

Loop Until ks.EOF

End If

MsgBox "İşlem başarıyla tamamlandı.", vbInformation + vbOKOnly, "AccessTR.Net"

Else

MsgBox "Tabloda kayıt yok"

End If



Cvp: devamlı tekrarlanan iki alan yerine kod alanı ekleyip yazmak - HSayar - 12/01/2011

sn alpeki uğraşlarınız için teşekkür ederim.
Parametre değerini gir diye bir ekran geliyor, gelmesine gerek yok doğru bir ilçe kodu giriyorum hata veriyor. kodlarda VATMO alşan başlığıda kullanılmış. NKO_* alanlarında sıkıntı yaratmaz ama YY_* alanlarında sıkıntı yaratır. yani bir kişinin tekirdağ şarköy adresi olabileceği gibi, ankara çankaya adreside olabilir.

birazdan ilçe adlarında son boşlukları silinmiş yeni tabloyu ekleyeceğim.

eski tabloyu sildiğimden form hata veriyor, düzeltemedim Img-grin


Cvp: devamlı tekrarlanan iki alan yerine kod alanı ekleyip yazmak - alpeki99 - 12/01/2011

Eklediğiniz dosyada tablo göremedim. Yukarıdaki kodlar problemsiz bir şekilde çalışmaktadır test edilmiş hali ile ekledim. ADO için referansı yüklemeyi unutmayınız.


Cvp: devamlı tekrarlanan iki alan yerine kod alanı ekleyip yazmak - HSayar - 12/01/2011

(12/01/2011, 12:10)alpeki99 yazdı: Eklediğiniz dosyada tablo göremedim. Yukarıdaki kodlar problemsiz bir şekilde çalışmaktadır test edilmiş hali ile ekledim. ADO için referansı yüklemeyi unutmayınız.

ADO 2.1 vardı onu referanslardan ekledim.
eklediğim dosyada tblSAHIS (ilçe kodları getirlecek) ve ytbl_MERNISILCEKOD (ilçe kodları alaınacak) tablolar mevcuttur.