25/04/2020, 12:46
Tablo Alanlarını Döngü İçinde Kullanmak
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
Kod:
sqls "itLastPersonel", "itNewPersonel", "SICNO"