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ü #7
hayır
1. tabloda 299 bin kadar kayıt var
2. tabloda 1055 adet Merkezi Kayıt Kurumundan alınan İLÇE KODLARI tablosu var.
istediğim 1. tabloda İLÇEKODU alanı eklediğim yere ikinci tabloda il adı ve ilçe adı eşleşenleri yazmak.


1. TABLO
alan1 alan2 alan3 ilcekodu iladi ilceadi
...... .... .... BOŞ EDİRNE LALAPAŞA
...... .... .... BOŞ AFYON BOLVADİN
...... .... .... BOŞ İZMİR KARŞIYAKA

2. TABLO
1412 EDİRNE İPSALA
1464 EDİREN KEŞAN
1295 EDİRNE EDİRNE MERKEZ VS.
Son Düzenleme: 10/01/2011, 15:55, Düzenleyen: HSayar.
Cevapla
Çözüldü #8
Demek istediğim 1. tabloda yer alan kayıt 2. tabloda bir alanamı denk geliyor yoksa 2. tabloda çok sayıda kaydamı dağıtılacak.

Bunun için ADO ile kayıtları tek tek döngüye sokup karşılaştırma yapılıp işlem yapılabilir ancak bu kadar çok kayıt için işlem yine uzun sürecektir.
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ü #9
1 TABLODA (tblSAHIS) yer alan bir aramanın ikinci tabloda bir sonucu va.
yani tblŞAHISLAR tablasunda ANKARA KEÇİÖREN içeren kayıt sayısı 100 bin tane olabilir.
ancak tblILCEKODDA bu kayıt sadece 1 tane.

ben kod tablosunu excele alıp Excel userformunda bir butona kod atayarak bir şeyler yaptım ancak aralığı daralttığım halde 15-20 dakika sürüyor.

  Private Sub cmdSORGU_Click()
ZAMANBAS = Now()
Dim sfILCEKOD As Excel.Worksheet
Set sfILCEKOD = ThisWorkbook.Worksheets("TRSO_ILCKOD")


Call sbNFSKYTBAG_AC
'If boolNFSKYDBAG = False Then GoTo exitPROC
Dim SqlSrg As String
Rem *\*\*\*\*\*\*\*\*\*\**\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\
SAY = 0
For i = 22 To 40 '1055
'MsgBox sfILCEKOD.Cells(i, 2).Text
'Next i
SqlSrg = " tblSAHIS.SHS_NKOIL = " & "'" & sfILCEKOD.Cells(i, 4).Text & "'" & " AND " & _
" tblSAHIS.SHS_NKOILCE = " & "'" & sfILCEKOD.Cells(i, 2).Text & "'"

sqlSTR = " SELECT " & sqlBAS_SHS_2 & " FROM [tblSAHIS] " & _
" WHERE " & SqlSrg

Set recNFS = CreateObject("ADODB.Recordset") 'kayıt bağlantısını kur
With recNFS
.Open sqlSTR, conNFS, adOpenKeyset, adLockOptimistic
If .RecordCount <> 0 Then
'Eşleşmenin sağlandığı tüm alanlarda alanlara sabit veri ekle.
.MoveFirst
Do While Not .EOF
.Fields("SHS_NKOILCEKODU") = sfILCEKOD.Cells(i, 1).Text
.MoveNext
Loop
SAY = SAY + .RecordCount
' MsgBox SAY & "/" & .RecordCount & " kayıda ilçe kodu eklenmiştir."
End If
End With
Set recNFS = Nothing
Next i
Rem */*/*/*/*/*/*/*/*/*/**/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/



exitPROC:
Call sbNFSKYTBAGKES
ZAMANBTS = Now()
MsgBox "Süre: " & Format((ZAMANBTS - ZAMANBAS), "hh:mm:ss.dd") & " Kayıt: " & SAY
End Sub
Cevapla
Çözüldü #10
bu işlemi acces içinden nasıl yaparız ve hızlandıramaz mıyız?
Cevapla
Çözüldü #11
Acces içindne Çözümü yok mudur?
Cevapla
Çözüldü #12
Tablodan tabloya belli bir kritere göre bilgi ekleme işlemini kendi uygulamamda birkaç defa kullandığım için ADO ile bu konuya aşinalığım var. Bu konudaki iki eklentiyi indirdim ikisinde de tblSAHIS isimli tablo yok.

Bende soruya cevap yazabilmek için konuyu iyi anlama gibi sıkıntı var. Anlayamazsam çözüm üretemiyorum. Belli bir yerden belli bir yere bir şarta göre güncelleme yapmak istediğinizi anlıyorum ancak bunu cümleye şöyle dökseniz en azından benim için çok daha kolay olur :

"İki tablom var. Tablo adlarını kolay akılda kalması için Tablo1 ve Tablo2 yaptım. Tablo1'de yer alan kişilerin kayıtlarında yer alan ilçe isimlerini Tablo2 de de görmek istiyorum. Böylelikle Tablo2 de sürekli ilçeler güncellenmiş olacak. Yalnız şöyle bir sıkıntım var. Tablo1 de yer alan bazı ilçeleri zaten Tablo2 ye kaydetmiştim. Tekrar Tablo2 ye kaydedilmesini istemiyorum......" gibi ne istediğinizi günlük dile bu şekilde dökerseniz, sizin için anlaması ve anlamlandırması kolay olan tablo ve alan adlarını daha basite indirgerseniz sorunuz büyük ihtimalle çok daha kolay çözülecektir.
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

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

Yorum yapmak için üye olmanız gerekiyor

ya da