2017-07-11 12 views
0

これは奇妙です。私は、レコードソースが更新可能であることを保証しました。これは先に働いていましたが、私はこれをすべて稼働させるために何度も試みた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

任意の助けいただければ幸いです!

答えて

0

私はこれを理解しました。新しいレコードフォームを追加すると、「はい」と「はい」のポップアップが設定されました。私はそのフォームを閉じても、コントロールを適切に解放していませんでした。他の目に見える形がないので、私はそれらをNoにしました。わーい! 3時間の睡眠と私はそれを考え出した!

関連する問題