Birleşik Giriş Kutusu İle Tabloya Çoklu Seçimleri Yazdırma

1 2 3 4 5
31/10/2021, 10:07

atoykan

Açıkçası ne yapmak istediğinizi ve mantığını net anladığımı söyleyemem. Ancak ifadelerinizden yola çıkarak
  • Öncelikle ilişkisel veritabanı mantığını dikkatle incelemelisiniz. 40 alanlı tablo olmaz, daha az sayıda alanlar içeren ve birbirleri ile ilişkilendirilmiş tablolar kullanılır.
  • INSERT INTO ile kayıt güncelleme yapılmaz, yeni kayıt oluşturulur. Mevcut kayıt içinde değişiklik için UPDATE sorgusu kullanılır. Siz yeni kayıt mı oluşturmaya çalışıyorsunuz mevcut kayıtları düzenlemeye mi?
  • @berduş Hocamın da belirttiği gibi neden yeni bir tablo kullanmak ihtiyacı duyuyorsunuz, form illa tek bir tabloya da bağlı olmak zorunda değildir çok sayıda tablo kaynak olarak kullanılabilir. Tek form üzerinden ekle, sil, düzenle işlemleri yapılabilir.
31/10/2021, 19:47

tabloman

Sizleri anlıyorum,sizler bu işi iyi bilen insanlarsınız.Ben sizler kadar anlamıyorum, ayrıca bu iş yerinde bir süredir çalışıyorum ve kullanılan bu program uzun zaman önce kullanılmaya başlamış. Sıfırdan ben yapmıyorum, ben sadece küçük bir düzenleme ile  işimizi daha kolay hale getirmeye çalışıyorum.

Keşke sizlerin de dediği gibi bir çok tablo yerine birkaç tablo ve tablo alan sayısı vs vs  söylediğiniz kriterlere göre yapılmış olsaydı. Celoyce arkadaşımızın vermiş olduğu kod (örnek uygulama  üzerinde var ) asıl uygulamamızda kullandığımızda şöyle bir hata alıyoruz.

"Alan eklemeyi denediğiniz veri miktarını kabul etmeyecek kadar küçük" kodda mı problem yoksa tabloda alan boyutu ayarı ile mi alakalı??
Alan boyutunu değiştirdiğimiz halde aynı hatayı veriyor..

01/11/2021, 23:27

berduş

dilerim işinize yarar
Private Sub BtnAktar_Click()
For x = 1 To 3
Controls("Mtn_" & x) = ""
    If IsNull(Controls("Ak_" & x)) = False Then
        Dim Dz() As Variant
        Dz = Controls("Ak_" & x)
        iLower = LBound(Dz)
        iUpper = UBound(Dz)
        son = ""
        For xL = iLower To iUpper
            son = son & ", " & Dz(xL)
        Next xL
        Controls("Mtn_" & x).Value = Mid(son, 2)
    End If
Next x
DoCmd.RunCommand acCmdSaveRecord
'hy__________________________________________Kayıt Ekle
SrgK = "SELECT * FROM tbl_yonler_aktarma"
Dim rs As ADODB.Recordset: Set rs = New ADODB.Recordset
rs.Open SrgK, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    rs.AddNew
    rs("yon") = Me.yon
    rs("ort") = Me.ort
    rs("mat") = Me.mat
    xID = rs(0)
    rs.Update
    rs.Close
''''''''hy__________________________________________MVFEkle
Dim rs2 As DAO.Recordset
Dim strSQL As String

strSQL = "SELECT kimlik, metin1.Value As MVFYon, metin2.Value As MVFOrt, metin3.Value As MVFMat " & _
        "FROM tbl_yonler WHERE kimlik= " & Me.txtID
       
Set rs2 = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)

With rs2
On Error Resume Next
    Do While Not .EOF
        strSQL = "INSERT INTO tbl_yonler_aktarma (metin1.Value) VALUES ('" & !MVFYon & "') WHERE kimlik=" & xID
        CurrentDb.Execute strSQL, dbFailOnError
        strSQL = "INSERT INTO tbl_yonler_aktarma (metin2.Value) VALUES ('" & !MVFOrt & "') WHERE kimlik=" & xID
        CurrentDb.Execute strSQL, dbFailOnError
        strSQL = "INSERT INTO tbl_yonler_aktarma (metin3.Value) VALUES ('" & !MVFMat & "') WHERE kimlik=" & xID
        CurrentDb.Execute strSQL, dbFailOnError
       
        .MoveNext
    Loop
    .Close
End With

End Sub
02/11/2021, 12:40

tabloman

örneğiniz için çok teşekkür ederim,1-2 seçenek yapınca sorunsuz aktarma yapıyor lakin  şöyle bir sorun devam ediyor?

yon-mat-ort açılan kutuları için en az 3 ve daha fazla seçim yaptığımızda resimdeki gibi hata almaya devam ediyoruz.


[img]
[/img]
02/11/2021, 13:59

berduş

özellikle dosyanızın aslına uygun olmasını isteme sebebimiz bu,
baştan savma dosya hazırlarsanız her adımda sorun çıkar.
hatanın sebebi alan türünün kısa metin türünde olmasına rağmen sizin çok uzun metin girmeye çalışmanız
ilgili alanların türünü uzun metin olarak ayarlayarak dener misininiz?
02/11/2021, 14:21

tabloman

bahsettiğiniz gibi kısa metin alan türünü uzun metin yaptığımda bu defa da birleşik giriş kutusu (yani seçim yapma olayı ) ortadan kalkıyor.
1 2 3 4 5