Skip to main content

AccessTr.neT


devamlı tekrarlanan iki alan yerine kod alanı ekleyip yazmak

devamlı tekrarlanan iki alan yerine kod alanı ekleyip yazmak

Çözüldü #25
3 sorunuzun cevabı için kodu aşağıdaki ile değiştir.

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 tblSAHIS"
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

If .Fields("NKO_IL") <> "0" Then
ilimiz = .Fields("NKO_IL")
ilcemiz = .Fields("NKO_ILCE")

hedef_id = Nz(DLookup("MRNS_ILCEKODU", "ytbl_MERNISILCEKOD", "MRNS_ILCEADI='" & ilcemiz & "'"), "9999")
islem_sql = "UPDATE tblSAHIS SET Alan1 ='" & hedef_id & "' WHERE VATNO='" & .Fields("VATNO") & "'"
DoCmd.RunSQL islem_sql
End If
If IsNull(.Fields("NKO_ILCE")) Then

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

If IsNull(.Fields("NKO_IL")) Then
islem_sql = "UPDATE tblSAHIS SET tblSAHIS.Alan1 = '9999' WHERE (((tblSAHIS.[VATNO])='" & .Fields("VATNO") & "'));"
DoCmd.RunSQL islem_sql
End If

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

4. soru için yeni konu açınız...
Cevapla
Çözüldü #26
Ayrıca ben 300 bin kayıttan bahsediyorum. Küçç bir hatada yeniden çalışıyor. ve çok uzun sürüyor. Bu nedenle kayıt güncellem işlemi için tblSAHIS tablosunda sorgu NKO_ILCEKODU boş ve NKO_ILCE boşdeğil ve NKO_IL boşdeğil olan kayıtlarda çalışsın nko_ılcekodu dolu olanları güncellemesin...
Cevapla
Çözüldü #27
Hüseyin Bey kusura bakmayın ama siz ne istediğinizi bilmiyorsunuz. Tutturmuşsunuz bir 300 bin kayıt var diye bu bizi ilgilendirmezki. Söyleyin o kadar kayıt kaydedilmesin ya da Mysql, MsSql kullanılsın sizde rahat edin.

İstediğiniz şeyi söylediniz yaptık alan adlarını tablo adlarını değiştirmişseniz biz ne yapalım. Madem değişecekti o zaman o hali ile verseydiniz dosyanızı.

Bana söylediğiniz şart neydi şimdi yeni bir şart daha ortaya sürüyorsunuz. Kusura bakmayın biraz tersledim ama oturup bir de bu taraftan bakın lütfen.
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla
Çözüldü #28
(13/01/2011, 00:20)Hüseyin Sayaroyunbiri yazdı: Ayrıca ben 300 bin kayıttan bahsediyorum. Küçç bir hatada yeniden çalışıyor. ve çok uzun sürüyor. Bu nedenle kayıt güncellem işlemi için tblSAHIS tablosunda sorgu NKO_ILCEKODU boş ve NKO_ILCE boşdeğil ve NKO_IL boşdeğil olan kayıtlarda çalışsın nko_ılcekodu dolu olanları güncellemesin...

Probleminizin çözümü verdiğimiz kod, kayıt fazlalığından kaynaklanan problemin kod ile ilgisi yok.

24. mesajda
Alıntı:2) tblSAHIS kaydında ilimiz değeri var ancak ilcemiz değeri yok ya da eşleşmiyorsa ilimiz = karşılığı gelen il, ilce adını tanımsız olarak algılasın nkoilcekodu [99ilplakakodu] olsun. yani kayıtta İl: İzmir, ilçe: deneme ise 9935 olsun.

3) tblSAHIS kaydında ilimiz ve ilcemiz değerleri yok ise; il ve ilce adını tanımsız olarak algılasın ve nko_ilcekodu 9999 olsun. yani kayıtta İl: İzmir, ilçe: deneme ise 9935 olsun.
dediniz, iki saat kod yazdık. Şimdi de

Alıntı:NKO_ILCEKODU boş ve NKO_ILCE boşdeğil ve NKO_IL boşdeğil olan kayıtlarda çalışsın nko_ılcekodu dolu olanları güncellemesin...

diyorsunuz.

Dediğim gibi sorunuzun çözümü verilen kod. Kod 300.000 kayıt için çalışmasında problem olmaz, hata olduğunda baştan başlamaz, işlem bitene kadar beklemeniz gerekir.
--------------

Mesajını görmeden yazdım @Alpeki.



Cevapla
Çözüldü #29
hocam 25 nolu mesajınızı yeni gördüm düzenleme için teşekkür ederim.

sn alpeki siteminizde haklısınız. iki ve üç nolu opsiyonlar şu an tablomdo olmayan ve olması muhtemel seçeneklerdi birazdan deneyeceğim. bu yüzden saygılarımı sunarım.

ilçe kodlarının 300 bin kayıt üzerinde çalışması 1,5 saati buldu.
kayıtların bazısı (2000 adet)
- / il adı / ilçe adı şeklinde dizildi.
bu durumda 300 bin kayıt için değil de sadece bu şartları taşayan 2000 kayıt için çalışsın demek nasıl olur diye sordum ki araya aşağıdaki gibi satır ekleyebileyim.

                        hedef_id = Nz(DLookup("MRNS_ILCEKODU", "ytbl_MERNISILCEKOD", "MRNS_ILADI='" & ilimiz & "' AND MRNS_ILCEADI='" & ilcemiz & "'"), "-")

If hedef_id = "-" Then
hedef_id = Nz(DLookup("MRNS_ILCEKODU", "ytbl_MERNISILCEKOD", "MRNS_ILADI='" & ilimiz & "' AND MRNS_DIGERILCEADI='" & ilcemiz & "'"), "-")
End If
Son Düzenleme: 13/01/2011, 01:00, Düzenleyen: HSayar.
Cevapla
Çözüldü #30
Ekteki örneği deneyiniz.

(tbl_sahis isimli tablodan veri silmiş olabilirim !!)
.rar ILCEKODUNUTAMAMLA_deneme.rar (Dosya Boyutu: 45,61 KB | İndirme Sayısı: 5)
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task