SQL'de Kopyalama

ragnorak

Altın Üye
Katılım
4 Haziran 2016
Mesajlar
203
Excel Vers. ve Dili
Excel 2021
Altın Üyelik Bitiş Tarihi
03-09-2026
236978

Resimdeki Access URUN_DOSYALARI Tablomda URUN_KODU "K.108.1003" olan tüm satırların kopyasını alıp, yeni dizinin URUN_KODU'nu "K.120.1180" olarak değiştirmek istiyorum. Sql kodu ile nasıl yapabilirim.
 

Ekli dosyalar

ragnorak

Altın Üye
Katılım
4 Haziran 2016
Mesajlar
203
Excel Vers. ve Dili
Excel 2021
Altın Üyelik Bitiş Tarihi
03-09-2026
Kod:
con.Execute "insert into [URUN_DOSYALARI_YEDEK] SELECT * FROM [URUN_DOSYALARI] where [URUN_KODU] ='K.108.1003'"
Başka Tabloya Kopyaladım. Aynı Tabloda kopyalama mümkün değil herhalde
 

ragnorak

Altın Üye
Katılım
4 Haziran 2016
Mesajlar
203
Excel Vers. ve Dili
Excel 2021
Altın Üyelik Bitiş Tarihi
03-09-2026
Kod:
fx = ListBox1.LIST(ListBox1.ListIndex, 0)
USER = Environ$("computername") & " | " & Format(Now(), "dd.mm.yyyy Hh:Nn")
    Sorgu = "select * from [URUN_DOSYALARI] where [URUN_KODU] ='" & fx & "'"
    RS.Open Sorgu, con, 1, 3
    
    Do Until RS.EOF
con.Execute "INSERT INTO [URUN_DOSYALARI] (STOK_KODU, ADET, ACIKLAMA, URUN_KODU, URUN_ADI, DERINLIK, GENISLIK, YUKSEKLIK, ALAN, RENK_1, RENK_2, URUN_ACIKLAMA, URUN_GRUBU, BIRIM, KAR_PAYI, ISKONTO, EK_MALIYET, [USER], DMO_KODU) VALUES " & _
"('" & RS("STOK_KODU").Value & "', '" & RS("ADET").Value & "', '" & RS("ACIKLAMA").Value & "', '" & URUN_KODU.Value & "', '" & RS("URUN_ADI").Value & "', '" & RS("DERINLIK").Value & "', '" & RS("GENISLIK").Value & "', '" & RS("YUKSEKLIK").Value & "', '" & RS("ALAN").Value & "', '" & RS("RENK_1").Value & "', '" & RS("RENK_2").Value & "', '" & RS("URUN_ACIKLAMA").Value & "', '" & URUN_GRUBU_1.Value & "', '" & RS("BIRIM").Value & "', '" & RS("KAR_PAYI").Value & "', '" & RS("ISKONTO").Value & "', '" & RS("EK_MALIYET").Value & "', '" & USER & "', '" & RS("DMO_KODU").Value & "');"
    RS.movenext
    Loop
Bu şekilde yaptım :)
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,291
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Özel kişi
Aynı tabloda 2 adet yeni "Field" yaratıp, ürün kodu K.108.1003 olan verileri yazmak için;

C#:
    strSQL = "Alter Table [URUN_DOSYALARI] Add Column [STOK_KODU_HD] String, Column [URUN_KODU_HD] String"
 
    adoCN.Execute strSQL
 
    strSQL = "Insert Into [URUN_DOSYALARI] (STOK_KODU_HD, URUN_KODU_HD) Select [STOK_KODU], [URUN_KODU] " & _
             "From [URUN_DOSYALARI] Where [URUN_KODU] ='K.108.1003' "
 
    adoCN.Execute strSQL

Kod çalıştıktan sonra; Access dosyasındaki "URUN_DOSYALARI" tablosunda artık her veriye ait, isimleri "STOK_KODU", "URUN_KODU", "STOK_KODU_HD" ve "URUN_KODU_HD" olmak üzere 4 adet "Field" ("Alan") olacaktır.

.
 
Son düzenleme:

ragnorak

Altın Üye
Katılım
4 Haziran 2016
Mesajlar
203
Excel Vers. ve Dili
Excel 2021
Altın Üyelik Bitiş Tarihi
03-09-2026
@Haluk Bey teşekkür ederim. Bu çözüm başka bir yerde çok işime yarayacak. Yeni konu açmadan başka bir sorum daha var ;

Kod:
Call Ado_Baglan
Set RS = CreateObject("adodb.recordset")

For j = 0 To ComboBox1.ListCount - 1

qpx = "IS_EMIRLERI_" & ComboBox1.LIST(j)
qpt = "TEKLIF_DOSYALARI_" & ComboBox1.LIST(j)

sorgu1 = "SELECT URUN_KODU FROM [" & qpx & "] UNION SELECT URUN_KODU FROM [" & qpt & "]) AS IE ON UD.[URUN_KODU] = IE.[URUN_KODU] WHERE (((IE.URUN_KODU) Is Null)"

Next

sorgu2 = "SELECT DISTINCT UD.URUN_KODU, UD.URUN_ADI, UD.URUN_ACIKLAMA, UD.RENK_1, UD.RENK_2, UD.GENISLIK, UD.DERINLIK, UD.YUKSEKLIK, UD.ALAN, UD.[USER], UD.URUN_GRUBU" _
& " FROM URUN_DOSYALARI AS UD LEFT JOIN (" & sorgu1 & ")"
Sorun şu "IS_EMIRLERI_..." ve ""TEKLIF_DOSYALARI_..." tablolarım var. Bunlar tam adlarını ComboBox1' den alıyor. Örnek "IS_EMIRLERI_SAMSUN" , "TEKLIF_DOSYALARI_SAMSUN" "IS_EMIRLERI_ANKARA" , "TEKLIF_DOSYALARI_ANKARA" gibi. Sorgu şu işe yarıyor; İş ve Teklif Dosyalarının içinde olmayan Ürün Dosyalarını Listeliyor. Problem "sorgu1" 'e değişken bir isim tanımlamayı beceremediğimden "sorgu1" her zaman ComboBox1'deki son kayda göre işlem yapıyor. Bu Kısma değişken bir isim nasıl tanımlayabilirim?
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,291
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Özel kişi
Değişkeni dizi olarak tanımlamalısınız...... Konuyu ufak bir örnekle açıklamak gerekirse; bir Userform oluşturun ve Combobox1 ile CommandButoon1 nesnelerini ilave edin.

Daha sonra UserForm modülüne aşağıdaki kodu yapıştırıp, çalıştırın.

C#:
Private Sub CommandButton1_Click()
    Dim arrSorgu()
    
    For j = 0 To ComboBox1.ListCount - 1
        ReDim Preserve arrSorgu(0 To j)
        arrSorgu(j) = ComboBox1.List(j)
    Next
    
    MsgBox UBound(arrSorgu) ' Dizideki eleman sayisi
    
    MsgBox arrSorgu(2)  'dizinin 3.elemani
    MsgBox arrSorgu(3)  'dizinin 4.elemani
End Sub
'
Private Sub UserForm_Initialize()
    ComboBox1.AddItem "İstanbul"
    ComboBox1.AddItem "Hatay"
    ComboBox1.AddItem "Tekirdağ"
    ComboBox1.AddItem "Cizre"
    ComboBox1.AddItem "Sinop"
End Sub

.
 
Son düzenleme:

ragnorak

Altın Üye
Katılım
4 Haziran 2016
Mesajlar
203
Excel Vers. ve Dili
Excel 2021
Altın Üyelik Bitiş Tarihi
03-09-2026
Bu mantıkla bakınca sorguda yanlış olmuş zaten. Bu haliyle ikiden çok tabloyu birleştirmez. Yine çok teşekkür ederim @Haluk bey. Örnek gayet aydınlatıcı oldu. Sağolun
 
Üst