2017-06-10 8 views
-1

挨拶StackOverflowの、VBAを使用してAccess 2016で5つ星評価システムを実装する方法

私たちは私たちの大学のために使う材料データベースを書いていると私は、MS-アクセス2016のデータベースシステムに入力された材料のための5つ星評価システムを実装しようとしていました。私はほとんどの基本作業を行っていますが、コーディングエラーが発生しています。

自分のプログラムに追加しようとしている2007バージョンの例のコードスクリプトと関係があると思います。私はちょっとデザインやコーディングの初心者なので、間違いを許してください。

これは私が持っているものです。次のコードでのVBAモジュールがある

:フォームで

Option Compare Database 
Option Explicit 

Public Function SetRating(frm As Object, ctl As Access.Control) 

'Code: by Daniel van den Berg 

On Error GoTo Err_handler 

Dim strStar As String 
Dim strBlank As String 

' set path to picture accordingly 
strStar = "C:\Users\jason\Pictures\yellow_sm.png" 
strBlank = "C:\Users\jason\Pictures\blank_sm.png" 

Select Case ctl.Value 

Case Is = 0 

frm.imgSt1.Picture = strBlank 
frm.imgSt2.Picture = strBlank 
frm.imgSt3.Picture = strBlank 
frm.imgSt4.Picture = strBlank 
frm.imgSt5.Picture = strBlank 

Case Is = 1 

frm.imgSt1.Picture = strStar 
frm.imgSt2.Picture = strBlank 
frm.imgSt3.Picture = strBlank 
frm.imgSt4.Picture = strBlank 
frm.imgSt5.Picture = strBlank 

Case Is = 2 

frm.imgSt1.Picture = strStar 
frm.imgSt2.Picture = strStar 
frm.imgSt3.Picture = strBlank 
frm.imgSt4.Picture = strBlank 
frm.imgSt5.Picture = strBlank 

Case Is = 3 

frm.imgSt1.Picture = strStar 
frm.imgSt2.Picture = strStar 
frm.imgSt3.Picture = strStar 
frm.imgSt4.Picture = strBlank 
frm.imgSt5.Picture = strBlank 

Case Is = 4 

frm.imgSt1.Picture = strStar 
frm.imgSt2.Picture = strStar 
frm.imgSt3.Picture = strStar 
frm.imgSt4.Picture = strStar 
frm.imgSt5.Picture = strBlank 

Case Is = 5 

frm.imgSt1.Picture = strStar 
frm.imgSt2.Picture = strStar 
frm.imgSt3.Picture = strStar 
frm.imgSt4.Picture = strStar 
frm.imgSt5.Picture = strStar 

End Select 


Exit_err: 

Exit Function 


Err_handler: 

MsgBox Err.Number & " " & Err.Description 

Resume Exit_err: 


End Function 

が、私は

Private Sub cmdNoRating_Click() 

NoRating Me.mRating 

End Sub 

Private Sub Form_Current() 

SetRating Form_Material Details, Me.mRating 

End Sub 

Private Sub imgSt1_Click() 

SetRatingClick Me.imgSt1, Me.mRating 

End Sub 

Private Sub imgSt2_Click() 

SetRatingClick Me.imgSt2, Me.mRating 

End Sub 

Private Sub imgSt3_Click() 

SetRatingClick Me.imgSt3, Me.mRating 

End Sub 

Private Sub imgSt4_Click() 

SetRatingClick Me.imgSt4, Me.mRating 

End Sub 

Private Sub imgSt5_Click() 

SetRatingClick Me.imgSt5, Me.mRating 

End Sub 
イベントプロシージャとして、次のしています

私のコードに何か問題はありますか?

+2

これは、SetRating関数の完全なコードを含めると便利です。あなたが今含まれているものはまったく何もしません。 –

+0

ありがとうエリック、私はコードを更新しました。希望するものは –

+0

あなたが受け取ったエラーは何ですか?あなたはそれをいつ受けるのですか?また、これは何ですか? 'Private Sub Form_Current() SetRating Form_Material Details、Me.mRating End Subはどうするのですか?間違った数の引数をSetRatingに渡します。私は、フォームをロードするよう –

答えて

0

イベントのSetRating関数に引数が間違って渡されました。また、設定されていない変数も使用しています。

はこれでそれを交換してみてください:

Private Sub Form_Current() 
     SetRating Me.Form, Me.mRating 
End Sub 

また、単にコピー&ペーストVBAを使用すると、完全に本番環境では理解していないことに注意してくださいは、セキュリティ上の危険です。あなたのコードを読んでみてください。

フォームを削除すると、フォームまたはスイッチのレコードを更新するときに、評価が読み込まれない可能性があることに注意してください。

+0

から表されていませんでした!とても親切に感謝します!!!私はそれがあなたにとってとてもシンプルだったと確信しています。 –

関連する問題