Tablo Alanlarını Döngü İçinde Kullanmak

1 2 3 4
25/04/2020, 12:46

alicimri

Ayrıca Değiştirme Ekleme işleri ile hiç uğraşma Access teki tabloyu sil, Excel bağlantılı tablodan Tablo Yap sorgusu ile en son halini aynı isimle kaydedin.
25/04/2020, 13:03

accessman

(25/04/2020, 12:46)alicimri yazdı: Ayrıca Değiştirme Ekleme işleri ile hiç uğraşma Access teki tabloyu sil, Excel bağlantılı tablodan Tablo Yap sorgusu ile en son halini aynı isimle kaydedin.
evet mantıklı

tablo isimleri ve kriter alan gönderek fonksiyon olarak çalıştırmak için son hali bu şekilde
Kod:
Public Sub sqls(lastTableName As String, newTableName As String, criteriaFieldName As String)
    Dim i As Integer
    Dim sql, strSQL As String
    Dim lastColumnName, newColumnName As String
    Dim name1, name2 As String
   
    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" & _
        " [" & lastTableName & "].[" & criteriaFieldName & "]" & "," & _
        " '" & lastColumnName & "' AS AlanAdi" & "," & _
        " [" & lastTableName & "].[" & lastColumnName & "]" & "," & _
        " [" & newTableName & "].[" & newColumnName & "]" & _
        " FROM [" & lastTableName & "]" & _
        " INNER JOIN [" & newTableName & "] ON [" & lastTableName & "].[" & criteriaFieldName & "] = [" & newTableName & "].[" & criteriaFieldName & "]" & _
        " WHERE [" & lastTableName & "].[" & lastColumnName & "]<>[" & newTableName & "].[" & 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 Sub
çağırmak için ise
Kod:
sqls "itLastPersonel", "itNewPersonel", "SICNO"
1 2 3 4