これは奇妙です。私は、レコードソースが更新可能であることを保証しました。これは先に働いていましたが、私はこれをすべて稼働させるために何度も試みた89097987の試みを知っています。私はレコードのためのフォームを持っています。ロード時に詳細はvisible = falseになります。ヘッダーには、レコード(ポップアップフォーム)を検索したり、新しいレコード(ポップアップフォーム)を追加したり、メインメニューに戻るためのボタンが表示されます。新しいレコードを追加するには、ユーザーがボタンをクリックしてポップアップフォームを開く必要があります。これにより、ユーザーは「連絡先」および/または「一致」を選択できます。関係の階層は連絡先 - >一致 - →レコード。私は、新しいレコードを追加してスコープのアイデンティティを戻すストアドプロシージャを実行するために、以下のコードを持っています。これを使用して、メインレコードフォームの1レコードレコードソースを設定します。タイトルバーを右クリックするまでアクセスフォームがフリーズしましたか?
これはすべて正常に動作しますが、レコードフォームに戻ったときを除いて、この1レコードでフォームはロックされます。私は何かをクリックすることはできません。アクセスリボンにはグレー表示のビューがあります。 フォームのタイトルバーを右クリックすると、もう一度OKですが、その意味がわかりません。 これは、この中でもっとも不思議な部分です。なぜ、フォームのタイトルバーを右クリックすると、ビューがフリーズするので、レイアウトやデザインに行くことができます。私はそのレコードを編集することもできます。
フォームがフリーズしているのはなぜですか?なぜ私は追加した新しいレコードのレコードソースを持っているので、フォームで作業できないのですか?フォームは編集を許可するように設定されており、フィールドはロックされていません。フォーム上のタブコントロールの別のページをクリックすることはできません。異なるプロパティをデバッグするのはうれしいですが、どのオブジェクトが原因かどうかはわかりません。フォームのタイトルバーを右クリックするとすべてがロックされ、再び機能するのはなぜですか?ここで
は、ポップアップフォーム上に新しいレコードのコードを追加します:
Private Sub cmdStartNewMRecord_Click()
Dim mid As Integer
Dim cmd As New ADODB.Command
Dim midparm As New ADODB.Parameter
Dim MCID As New ADODB.Parameter
Dim frmMCSQL As String
If Nz(Me.cboChooseContact.Column(0), 0) = 0 Then
MsgBox "No Contact has been selected. Records must be assigned to a valid Contact and Match.", vbCritical, "Must Choose a Contact and Match to Continue."
ElseIf Nz(Me.cboChooseMatch.Column(0), 0) = 0 Then
MsgBox "No Contact has been selected. Records must be assigned to a valid Contact and Match.", vbCritical, "Must Choose a Contact and Match to Continue."
Else
mid = Nz(Me.cboChooseMatch.Column(0), 0)
With cmd
.CommandText = "sp_AddNewMatchRecord"
.CommandType = adCmdStoredProc
.ActiveConnection = "DRIVER={SQL Server};SERVER=blahservername;DATABASE=blahdatabasename"
Set midparm = .CreateParameter("@mid", adVarChar, adParamInput, 30, mid)
.Parameters.Append midparm
Set MCID = .CreateParameter("@NEWID", adCurrency, adParamOutput)
.Parameters.Append MCID
.Execute Options:=adExecuteNoRecords
Set .ActiveConnection = Nothing
Set midparm = Nothing
End With
Debug.Print MCID
End If
frmMCSQL = "SELECT * FROM tblMRecords WHERE ID = " & MCID
Forms!frmMRecords.RecordSource = frmMCSQL
Forms!frmMRecords.Visible = True
Forms!frmMRecords.Detail.Visible = True
Forms!frmMRecords.Refresh
Call ShowRequirements(Nz(MCID, 0))
Set MCID = Nothing
Set cmd = Nothing
DoCmd.Close acForm, "frmMRecords_AddNewRecord", acSaveNo
End Sub
これは、メインのレコード形式(起こっていないロット)上にあるすべてのコードです:
http://files.engineering.com/getfile.aspx?folder=fd94084a-ec0d-4140-912e-4e933018d82e&file=MainRecordFormatProperties.jpg:
Option Compare Database
Option Explicit
Private Sub Form_Load()
Me.Detail.Visible = False
End Sub
Private Sub cmdNew_Click()
DoCmd.OpenForm "frmMRecords_AddNewRecord"
Me.Form.Visible = False
End Sub
Private Sub cmdFindMRecord_Click()
DoCmd.OpenForm "frmMRecords_FindRecords"
Me.Form.Visible = False
End Sub
Private Sub cmdQContacts_Click()
MsgBox "Contacts listed are only those entered for this Contact." & vbCrLf & _
"Please add Contacts in Contacts Section, " & vbCrLf & _
"and then assign them to a type of contact here within a Record.", vbQuestion, "Assign Contacts to Types of Contacts Within Records"
End Sub
Private Sub cmdMainMenu_Click()
Forms!frmMain.Visible = True
DoCmd.Close acForm, "frmMRecords", acSaveYes
End Sub
これらは主レコードフォームの特性のプリントスクリーンであります10
http://files.engineering.com/getfile.aspx?folder=2bcd17ed-8e73-4f8f-b82c-5e28b528370c&file=MainRecordOtherProperties.jpg
http://files.engineering.com/getfile.aspx?folder=66e7924e-a312-4b64-a177-34a6d5156bc7&file=MainRecordDataProperties.jpg
任意の助けいただければ幸いです!