15/05/2020, 14:12
iyi günler
bir ara tablo alanlarını döngü içinde kullanmak ile ilgili bir konu açmıştım
orada şu döngü ile
soruya gelecek olursak ben döngü içerisinden aldığım Sql cümlesi ile
"FROM degisenler" cümlesindeki degisenler yerine uzun union Sql cümlesini nasıl ekleyeceğiz
bir ara tablo alanlarını döngü içinde kullanmak ile ilgili bir konu açmıştım
orada şu döngü ile
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şağıdaki Sql cümlesini oluşturup iki tablo arasında değişenleri listeye alıyordumSELECT [EGITmMX].[SICNO], 'ESCY34' AS AlanAdi, [EGITmMX].[ESCY34], [EGITmM].[ESCY34] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[ESCY34]<>[EGITmM].[ESCY34] UNION ALL SELECT [EGITmMX].[SICNO], 'MASYER' AS AlanAdi, [EGITmMX].[MASYER], [EGITmM].[MASYER] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[MASYER]<>[EGITmM].[MASYER] UNION ALL SELECT [EGITmMX].[SICNO], 'GRVADI' AS AlanAdi, [EGITmMX].[GRVADI], [EGITmM].[GRVADI] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[GRVADI]<>[EGITmM].[GRVADI] UNION ALL SELECT [EGITmMX].[SICNO], 'GORADI' AS AlanAdi, [EGITmMX].[GORADI], [EGITmM].[GORADI] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[GORADI]<>[EGITmM].[GORADI] UNION ALL SELECT [EGITmMX].[SICNO], 'SICNO' AS AlanAdi, [EGITmMX].[SICNO], [EGITmM].[SICNO] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[SICNO]<>[EGITmM].[SICNO] UNION ALL SELECT [EGITmMX].[SICNO], 'ESCY06' AS AlanAdi, [EGITmMX].[ESCY06], [EGITmM].[ESCY06] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[ESCY06]<>[EGITmM].[ESCY06] UNION ALL SELECT [EGITmMX].[SICNO], 'MASCIN' AS AlanAdi, [EGITmMX].[MASCIN], [EGITmM].[MASCIN] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[MASCIN]<>[EGITmM].[MASCIN] UNION ALL SELECT [EGITmMX].[SICNO], 'PERAD' AS AlanAdi, [EGITmMX].[PERAD], [EGITmM].[PERAD] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[PERAD]<>[EGITmM].[PERAD] UNION ALL SELECT [EGITmMX].[SICNO], 'PERSOY' AS AlanAdi, [EGITmMX].[PERSOY], [EGITmM].[PERSOY] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[PERSOY]<>[EGITmM].[PERSOY] UNION ALL SELECT [EGITmMX].[SICNO], 'CTEL' AS AlanAdi, [EGITmMX].[CTEL], [EGITmM].[CTEL] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[CTEL]<>[EGITmM].[CTEL] UNION ALL SELECT [EGITmMX].[SICNO], 'KE' AS AlanAdi, [EGITmMX].[KE], [EGITmM].[KE] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[KE]<>[EGITmM].[KE] UNION ALL SELECT [EGITmMX].[SICNO], 'VATNO' AS AlanAdi, [EGITmMX].[VATNO], [EGITmM].[VATNO] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[VATNO]<>[EGITmM].[VATNO] UNION ALL SELECT [EGITmMX].[SICNO], 'DOGGUN' AS AlanAdi, [EGITmMX].[DOGGUN], [EGITmM].[DOGGUN] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[DOGGUN]<>[EGITmM].[DOGGUN] UNION ALL SELECT [EGITmMX].[SICNO], 'DOGAY' AS AlanAdi, [EGITmMX].[DOGAY], [EGITmM].[DOGAY] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[DOGAY]<>[EGITmM].[DOGAY] UNION ALL SELECT [EGITmMX].[SICNO], 'DOGYIL' AS AlanAdi, [EGITmMX].[DOGYIL], [EGITmM].[DOGYIL] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[DOGYIL]<>[EGITmM].[DOGYIL] UNION ALL SELECT [EGITmMX].[SICNO], 'GIRGUN' AS AlanAdi, [EGITmMX].[GIRGUN], [EGITmM].[GIRGUN] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[GIRGUN]<>[EGITmM].[GIRGUN] UNION ALL SELECT [EGITmMX].[SICNO], 'GIRAY' AS AlanAdi, [EGITmMX].[GIRAY], [EGITmM].[GIRAY] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[GIRAY]<>[EGITmM].[GIRAY] UNION ALL SELECT [EGITmMX].[SICNO], 'GIRYIL' AS AlanAdi, [EGITmMX].[GIRYIL], [EGITmM].[GIRYIL] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[GIRYIL]<>[EGITmM].[GIRYIL] UNION ALL SELECT [EGITmMX].[SICNO], 'TAHSIL' AS AlanAdi, [EGITmMX].[TAHSIL], [EGITmM].[TAHSIL] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[TAHSIL]<>[EGITmM].[TAHSIL] UNION ALL SELECT [EGITmMX].[SICNO], 'MEZUN' AS AlanAdi, [EGITmMX].[MEZUN], [EGITmM].[MEZUN] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[MEZUN]<>[EGITmM].[MEZUN] UNION ALL SELECT [EGITmMX].[SICNO], 'KURS3' AS AlanAdi, [EGITmMX].[KURS3], [EGITmM].[KURS3] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[KURS3]<>[EGITmM].[KURS3] UNION ALL SELECT [EGITmMX].[SICNO], 'EMEKLI' AS AlanAdi, [EGITmMX].[EMEKLI], [EGITmM].[EMEKLI] FROM [EGITmMX] INNER JOIN [EGITmM] ON [EGITmMX].[SICNO] = [EGITmM].[SICNO] WHERE [EGITmMX].[EMEKLI]<>[EGITmM].[EMEKLI];
şimdi bu Sql cümlesini "degisenler" sorgusu olarak kaydettim bu sorguyu kullanarak şu Sql cümlesi ilede tablo yapıyorumSELECT degisenler.* INTO tDegisenler FROM degisenler;
bu işlemler sonucunda bir "tDegisenler" tablosu oluşturuluyorsoruya gelecek olursak ben döngü içerisinden aldığım Sql cümlesi ile
SELECT degisenler.* INTO tDegisenler FROM degisenler;
cümlesini birleştirmek istiyorum. böylece tek seferde iki tablo arasındaki değişen alanları bir tabloya alacağım"FROM degisenler" cümlesindeki degisenler yerine uzun union Sql cümlesini nasıl ekleyeceğiz