AccessTr.neT

Tam Versiyon: kodlar.mdb nin ilceler tablosundan sahıs.mdb nin sahıs vt alanındaki kaydı tamamlamak.
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
tblSAHIS tabllosunun ilcekodu alanı boş, il adı ve ilce adı alnları dolu ise Aynı veritabanında bulunan ytbl_MERNISILCEKOD tablosunda il adı ve ilce adı tblsahıstakilerle eşleşiyorsa ilçe kodunu alıp Tblsahıs.ılcekodu alanını güncelleyen kodları alpeki ve sleadgeab hocalarım sayesinde çözdüm.

ancak genel senaryoda böyle bir şey mümkün değil. MERNISILCEKOD tablosu başka bir veritabanı içinde olsa (idi ki öyle olmalı) mesala (vtKODLAR.MDB) aşağıdaki visiual basic kodları nasıl değişmelidir?






Private Sub Komut21_Click()
'sleadgeab / accestr
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, SHS_NKOIL, SHS_NKOILCE, SHS_NKOILCEKODU FROM tblSAHIS"
ks.Open kaynak_tablo_sql, CurrentProject.Connection, adOpenStatic, adLockReadOnly

Say = 0
If Not ks.BOF And Not ks.EOF Then
If ks.EOF <> True Then
Do
With ks

If IsNull(.Fields("SHS_NKOILCEKODU")) Then
Say = Say + 1
If IsNull(.Fields("SHS_NKOIL")) Then
islem_sql = "UPDATE tblSAHIS SET tblSAHIS.SHS_NKOILCEKODU = '9999' WHERE (((tblSAHIS.[VATNO])='" & .Fields("VATNO") & "'));"
DoCmd.RunSQL islem_sql
GoTo ATLA
End If

If .Fields("SHS_NKOIL") <> "0" And .Fields("SHS_NKOILCE") <> "0" Then
ilimiz = .Fields("SHS_NKOIL")
ilcemiz = .Fields("SHS_NKOILCE")
hedef_id = Nz(DLookup("MRNS_ILCEKODU", "ytbl_MERNISILCEKOD", "MRNS_ILCEADI='" & ilcemiz & "'"), "9999")

If hedef_id = "9999" Then
hedef_id = Nz(DLookup("MRNS_ILCEKODU", "ytbl_MERNISILCEKOD", "MRNS_ILADI='" & ilimiz & "' AND MRNS_DIGERILCEADI='" & ilcemiz & "'"), "9999")
End If

If hedef_id = "9999" Then
hedef_id = Nz(DLookup("MRNS_ILCEKODU", "ytbl_MERNISILCEKOD", "MRNS_ILADI='" & ilimiz & "' AND MRNS_DIGERILCEADI2='" & ilcemiz & "'"), "9999")
End If

islem_sql = "UPDATE tblSAHIS SET SHS_NKOILCEKODU ='" & hedef_id & "' WHERE VATNO='" & .Fields("VATNO") & "'"
DoCmd.RunSQL islem_sql
Else
hedef_id = Dlookup ("TRF_PLKKODU", "ytbl_MERNISILCEKOD", "MRNS_ILADI='" & ilimiz & "'")
islem_sql = "UPDATE tblSAHIS SET SHS_NKOILCEKODU = 99 & '" & hedef_id & "' WHERE VATNO='" & .Fields("VATNO") & "'"
DoCmd.RunSQL islem_sql
End If

ATLA:
End If
ks.MoveNext
End With
Loop Until ks.EOF
End If
MsgBox "İşlem başarıyla tamamlandı. - DegKaySay: " & Say, vbInformation + vbOKOnly, "AccessTR.Net"
Else
MsgBox "Tabloda kayıt yok"
End If
End Sub
kodda oynama yapmadan bağlı tablo yöneticisini kullanarak vtKODLAR.MDB veritabanındaki herhangi bir tabloyu geçerli veritabanınızda kullanabilirsiniz.

bkz #37
hocam Acces versiyonu olarak ofiste 2010 evde 2007 kullanıyıorum.
Bağlı tablo yöneticisini kullanamay inceleyeceğim. bununla ilgili forum dersi örnek uygulama ise link verir misiniz?
Ama illada kodlarla olsun dersek nasıl olmalıdır?
Köprü varken boğazı yüzerek geçeyim diyorsunuz yani Img-grin Ezbere iş yapmayalım geçen sorunuzda öyle yaptınız şartları değiştirdiğiniz için daha soruya bile bakasım gelmiyor. Tam olarak olması gerekenleri yazın ya da dosyaları (gerçekte nasılsa) koyun ona göre çözüm bakalım.
En son indirdiğiniz dosyada yrd. tabloyu başka çalışma kitabına pardon mdb ye alınız. kalanı aynı değiştirmeyeceğim söz.