AccessTr.neT
Tablo Alanlarını Döngü İçinde Kullanmak - 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ığı: Tablo Alanlarını Döngü İçinde Kullanmak (/konu-tablo-alanlarini-dongu-icinde-kullanmak.html)

Sayfalar: 1 2 3 4


RE: Tablo Alanlarını Döngü İçinde Kullanmak - accessman - 25/04/2020

çünkü hangi alanların değiştiğini rapor halinde göstermem gerekiyor


RE: Tablo Alanlarını Döngü İçinde Kullanmak - berduş - 25/04/2020

Yalniz 4. mesajdaki kodu kullanarak zaten yapabilirsini döngüye union all eklemeniz yeterli
Daha önceki bir (hastalıkların ayrılması )konunuzda union all döngüye sokularak tüm alanlar alt alta listelenmisti


Re: Tablo Alanlarını Döngü İçinde Kullanmak - accessman - 25/04/2020

sn. @berduş yazmış olduğunuz kod ile harika çalıştı kodun son halini ekliyorum
Kod:
Public Function sqls()
    Dim i As Integer
    Dim sql, strSQL As String
    Dim lastTableName, newTableName As String
    Dim lastColumnName, newColumnName As String
    Dim name1, name2 As String
   
    lastTableName = "itLastPersonel"
    newTableName = "itNewPersonel"
    strSQL = ""

    For i = 0 To CurrentDb.TableDefs(lastTableName).Fields.Count - 1
   
        lastColumnName = CurrentDb.TableDefs(lastTableName).Fields(i).Name
        newColumnName = CurrentDb.TableDefs(newTableName).Fields(i).Name
 
        sql = "SELECT" & _
        " itLastPersonel.SICNO" & "," & _
        " '" & lastColumnName & "' AS AlanAdi" & "," & _
        " itLastPersonel.[" & lastColumnName & "]" & "," & _
        " itNewPersonel.[" & newColumnName & "]" & _
        " FROM itLastPersonel" & _
        " INNER JOIN itNewPersonel ON itLastPersonel.SICNO = itNewPersonel.SICNO" & _
        " WHERE itLastPersonel.[" & lastColumnName & "]<> itNewPersonel.[" & newColumnName & "]"

        strSQL = strSQL & sql
       
        If (i < CurrentDb.TableDefs(lastTableName).Fields.Count - 1) Then
            strSQL = strSQL & " UNION ALL "
        Else
            strSQL = strSQL & ";"
        End If
       
    Next i
   
    Me.Liste0.RowSource = strSQL
    Me.Liste0.Requery
   
End Function

bunun ile ne yapıyoruz 
biri yerel tablo (itLastPersonel)
diğeri bağlı tablo (itNewPersonel)
birbirinin aynı olan 2 tablonun alanlarını karşılaştırıp farklı olan alanları resimdeki gibi listede gösteriyoruz

[Resim: do.php?img=10105]


RE: Tablo Alanlarını Döngü İçinde Kullanmak - accessman - 25/04/2020

bunu fonksiyon haline nasıl getiririz, tablo isimlerini nasıl gönderebiliriz

Kod:
Public Function sqls(lastTableName As String, newTableName As String)

kod içerisinde geçen 
"itLastPersonel" yerlerine 
"lastTableName" değişkenini nasıl yazabiliriz


RE: Tablo Alanlarını Döngü İçinde Kullanmak - alicimri - 25/04/2020

Sana pratik yol öneriyim
Üç adet WORD dosyası oluştur.
1. dosyaya excelden bağladığın tabloyu yapıştır.
2. dosyaya Access de bulunan dosyayı yapıştır.
3. dosyada "Gözden Geçir" Menüsünde "Karşılaştır" da diğer iki dosyayı ayarla.
RAPORUN HAZIR.


RE: Tablo Alanlarını Döngü İçinde Kullanmak - accessman - 25/04/2020

bu daha pratikmiş  önerin için çok teşekkürler sn. @alicimri