Skip to main content

AccessTr.neT


Çoktan Seçmeli Test Programı

Çoktan Seçmeli Test Programı

Çözüldü #1
Merhaba arkadaşlar, Ekte göreceğiniz metinse adlı kullanıcının eklemiş olduğu kelime öğrenme programını, sizinde yardımlarınızla tasarladığım kendi sözlük veritabanıma uyarlamak istiyorum. 
Fakat şöyle bir sorun var: Bu ekteki veritabanındaki bütün işlemler tek bir tabloda bulunan (DATA) kelimeler üzerinden işliyor. 
Yani kelimelerin türkçe ve ingilizce karşılıkları tek tabloda toplanmış durumda.
Bunu kendi tabloma uyarlamam için bu DATA tablosunu, ingilice kelimelerin bulunduğu DATA1 ve türkçe karşılıklarının bulunduğu DATA2 olmak üzere iki tabloya böldüm. Ve DATA2 tablosundaki "bag" alanıyla da birbirleriyle ilişkilendirdim.
Fakat kodları uyarlamaya kalktığımda program donuyor.
2 gündür uğraşıyorum fakat bir türlü üstesinden gelemedim.

Eklere hem sadece tablo eklediğim halini, hem de kodlarını düzenlediğim halini koyuyorum.
Yardımcı olabilirseniz çok minnettar olurum.
Sadece frm_sor formunu düzenlesek yeterli.Ben de bu form üzerinde çalıştım. Aslında gerekli düzenlemeleri yaptığımı düşünüyorum ama bir yerde bir eksiklik var çözemiyorum.
.rar Mehmet-Kelime Öğrenme orijinal.rar (Dosya Boyutu: 326 KB | İndirme Sayısı: 19)
.rar mehmet kelime öğrenme -düzenlenmiş.rar (Dosya Boyutu: 342,42 KB | İndirme Sayısı: 35)
Son Düzenleme: 06/03/2018, 14:38, Düzenleyen: mehmetb84.
Cevapla
#2
arkadaşlar fikri olan yok mudur?
Cevapla
#3
Merhaba,
Benim verebileceğim fikir; uygulamanın orijinalini bilmiyorum ama tüm kodlar On Error Resume Next ile başlayıp HataBul (Err.Number) ile kapanmış,
on error resume next yazdığınızda hata var ise devam eder, hata ile ilgili herhangi bir açıklama yapmaz.


On error resume next
kodunu

On Error GoTo Hata

kodu ile değiştir,


HataBul (Err.Number)


kodunu da


Hata:
If Err.Number <> 0 Then
MsgBox (Err.Number & "" & Err.Description)
Exit Sub
End If


Kodu ile değiştir. Bu şekilde kodlarda oluşan hatayı görebilirsin.
Cevapla
#4
(05/03/2018, 13:30)ozanakkaya yazdı:
Kod:
Private Sub Sor()

On Error GoTo Hata

   xSoruTur = Me.cbxSoru
   xSecenekTur = Me.cbxSecenek
   xAyrinti = Me.cbxAyrinti
   xCevapSay = 0
   Call AlanYenile
   Call Gizle
   Call Pas
   
   Me.lblVocabulary.Caption = rs(xSoruTur)
     
   If Len(Trim(rs(xSoruTur))) > 40 Then
       Me.lblVocabulary.FontSize = 12
   ElseIf Len(Trim(rs(xSoruTur))) > 30 Then
       Me.lblVocabulary.FontSize = 14
   Else
       Me.lblVocabulary.FontSize = 16
    End If
   
   Me.Caption = "Bu kelime " & Nz(DLookup("[Times]", "[DATA1]", "[ID] =" & xRastgele)) & " defa soruldu. "
   xDogruSecenek = Int((5 * Rnd) + 1)
yenile:
   CurrentDb.Execute "Delete From Kontrol"

   For X = 1 To 5
       xSecenek(X) = Int((xKayitSay * Rnd) + 1)
       rs.Filter = "[ID] =" & xSecenek(X)
       If rs(xSecenekTur) = " " Or IsNull(rs(xSecenekTur)) = True Then
           If X > 0 Then X = X - 1
       Else
           CurrentDb.Execute "Insert into Kontrol (Kelime) values('" & DLookup("[Turkish]", "[DATA2]", "[bag] =" & xSecenek(X)) & "')"
       End If
   Next
       Sql_Calistir ("Select Kelime,Count(Kelime) as Say From Kontrol Group By Kelime Having Count(Kelime)>1")
       
       If rst.EOF = False Then
           GoTo yenile
       End If
       
       xSecenek(xDogruSecenek) = xRastgele
     
   For X = 1 To 5
       Select Case X
           Case 1
           Me.lbl1.Caption = "a.) " & DLookup(xSecenekTur, "[DATA2]", "[bag] =" & xSecenek(X))
           Case 2
           Me.lbl2.Caption = "b.) " & DLookup(xSecenekTur, "[DATA2]", "[bag] =" & xSecenek(X))
           Case 3
           Me.lbl3.Caption = "c.) " & DLookup(xSecenekTur, "[DATA2]", "[bag] =" & xSecenek(X))
           Case 4
           Me.lbl4.Caption = "d.) " & DLookup(xSecenekTur, "[DATA2]", "[bag] =" & xSecenek(X))
           Case 5
           Me.lbl5.Caption = "e.) " & DLookup(xSecenekTur, "[DATA2]", "[bag] =" & xSecenek(X))
       End Select
   Next
Hata:
If Err.Number <> 0 Then
MsgBox (Err.Number & "" & Err.Description)
Exit Sub
End If
End Sub

Merhaba,
Benim verebileceğim fikir; uygulamanın orijinalini bilmiyorum ama tüm kodlar On Error Resume Next ile başlayıp HataBul (Err.Number) ile kapanmış,
on error resume next yazdığınızda hata var ise devam eder, hata ile ilgili herhangi bir açıklama yapmaz.


On error resume next
kodunu

On Error GoTo Hata

kodu ile değiştir,


HataBul (Err.Number)


kodunu da


Hata:
If Err.Number <> 0 Then
MsgBox (Err.Number & "" & Err.Description)
Exit Sub
End If


Kodu ile değiştir. Bu şekilde kodlarda oluşan hatayı görebilirsin.

Öncelikle ilgilendiğiniz için çok teşekkürler Ozan bey. Söylediklerinizi yaptım ama hala hata göremiyorum, donuyor eskisi gibi. Kodun son halini ekledim, atladığım bir şey mi var?
Cevapla
#5
merhaba sayın mehmetb84
kısaca göz atabildim ufak bir düzeltme önersem.
1-ana formunuzun load kodunu siliniz.
2-ana formunuzun açıldığında olayına   ( 2 fSetAccessWindow (SW_HIDE) ) kodunu yapıştırınız. parantezler hariç.
3-kullandığınız diğer bütün formlarıda açılan ve kalıcı durumunu evet yapınız.
birde bu şekilde denermisiniz.
Universal Form Tasarımı. devamlı güncelleniyor.
SQL TO Vba Convertör.
Cevapla
#6
(05/03/2018, 15:53)HEDEF ELEKTRONİK yazdı: merhaba sayın mehmetb84
kısaca göz atabildim ufak bir düzeltme önersem.
1-ana formunuzun load kodunu siliniz.
2-ana formunuzun açıldığında olayına   ( 2 fSetAccessWindow (SW_HIDE) ) kodunu yapıştırınız. parantezler hariç.
3-kullandığınız diğer bütün formlarıda açılan ve kalıcı durumunu evet yapınız.
birde bu şekilde denermisiniz.

Yanıt için teşekkür ederim.
Söylediklerinizi yaptım. Bu sayede anasayfadan sor eklime sor forumuna rahatlıkla ulaşılabiliyor. Fakat benim için bu çok tali bir mesele. 
Zaten düzenlemeleri frmsor formu üzerinden yapıyorum.
Yani açılış ve anaform çok önemli bir mesele değil, asıl sorun frmsor formunu açtıktan sonra kelimesor komutunu (cmdKelimeSor) tıkladıktan sonra çalışmaması/donması.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task