メインフォームには2つのボタンがあります。そのうちの1つは、ユーザーがフィードバックを記録するためのもので、もう1つは私が入り、そのフィードバックのメモ/ステータス更新を追加することです。両方のボタンは、分割フォームビューで同じフォームを開きます。ユーザーがボタンをクリックしたときに特定の列を非表示にしたい場合は、管理ボタンをクリックしてください。私が試したこと:どちらのボタンも同じフォームを開きますが、フォームが開かれる前に、真の(ユーザボタンの場合)かブール変数の場合(私のボタンのための)いずれかにpublic subが呼び出されます。次に、ロード時のプロシージャが起動すると、変数の値がチェックされ、列を非表示にするかどうかが判断されます。ここではそのコードは次のとおりです。分割フォームの列を非表示にする
Option Compare Database
Public booFeedback As Boolean
Public Sub FeedBackBoolean1()
booFeedback = False
End Sub
Public Sub FeedBackBoolean2()
booFeedback = True
End Sub
次にフォーム自体は、それがこのコードを実行するロードするとき:
Private Sub Form_Load()
Call cmdRemoveFilter_Click
If booFeedback = False Then
Me.colPriority.ColumnHidden = True
Me.colWorkEffort.ColumnHidden = True
Me.colStatus.ColumnHidden = True
Me.colDeliveryDate.ColumnHidden = True
Me.colStatusComments.ColumnHidden = True
Else
Me.colPriority.ColumnHidden = False
Me.colWorkEffort.ColumnHidden = False
Me.colStatus.ColumnHidden = False
Me.colDeliveryDate.ColumnHidden = False
Me.colStatusComments.ColumnHidden = False
End If
End Sub
結果は(私は非表示にするには探していた列がある表示されませんが、コードが正しく実行されます正しく隠されていない)。デザインモードにして閉じて保存すると、次回実行時にコードが正常に動作することがわかりました。しかし、他のボタンをクリックすると、前回の実行時と同じ結果になります。また、私は誰もそれをクリックすることができないように管理ボタンに疑似パスワードを入れました。今のところセキュリティについてはあまり心配していません。実行中booFeedbackの値が何であるか、
今Me.colPriority.ColumnHidden = Not booFeedback
Me.colWorkEffort.ColumnHidden = Not booFeedback
Me.colStatus.ColumnHidden = Not booFeedback
Me.colDeliveryDate.ColumnHidden = Not booFeedback
Me.colStatusComments.ColumnHidden = Not booFeedback
デバッグ、設定されたブレークポイント:スタータ用
HI June、 ありがとうございました!私はブレークポイントを設定し、booFeedbackは毎回正しく評価されます。コードは実行する必要がありますが、フォームは依然として正しく表示されません。また私はシフトバイパスなどを認識していますが、この時点ではセキュリティに関してあまり心配していません。現在、小グループに配布されています。また、ACCDE形式で配布されます。このプロジェクトをAccessの地面から取り除き、最終的にWebアプリケーションに移行したいと考えています(そのうちの私は今のところほとんど知識がありません)。今のところは、アプリケーションをかなりシンプルにすることです。 – Chuck0185
私があなたが提案した編集を行いました。コードを間違いなく短縮しましたが、同じ問題です。ユーザーボタンを押すとフィールドがブロックされますが、私が戻って管理ボタンを押すと、フォームがロードされてもフィールドはブロックされます。その後、私が設計モードに入り、保存して閉じると、管理ボタンを押すと、フィールドはもはやブロックされなくなります。その後、フォームを閉じてユーザーボタンを押すと、フィールドはまだブロックされません。それはデザインモードと関係があるようですね? – Chuck0185
分割とデータシートビューでフォームを試してみました。このコードはデータシートのフォームには効果的ですが、分割フォームは協力しません。スプリットフォームの性質はそうではないようなもので、他のディスカッションの研究はこの結論を支持していると思います。ここに1つhttps://access-programmers.co.uk/forums/showthread.php?t=200972 – June7