2016-09-28 19 views
-2

ユーザーがボタンをクリックして保存し、新しい場所に移動するときに、次のコードを実行して、設定された場所で使用されている最高のクライアントIDを見つけて1を追加しました。レコードを保存して新しいレコードに移動する前に。他のエラーを処理中に、私はこの行に必要な過去のエラーオブジェクトを取得できません。 "[ClientID]"、 "tClientinfo"、 "[CorpsName] =" & "'defaultcorps'")Null、0、DMax( "[ClientID]"、 "tClientinfo" [CorpsName] = "&" 'defaultcorps' "))+ 1"実行時エラー424オブジェクトが必要

もっと混乱した同様の質問を見ると、コードに間違いがあります。私はあなたがあなたのDMAX()ステートメントが正しく作成された場合の結果を把握することから始めする必要があると思う任意の提案を事前にデビッド

Private Sub Save_Record_Click() 

'declare variables for default values 
Dim defaultinterviewr As String 
Dim defaultcorps As String 


'Variables get their values 
defaultinterviewr = Me.Interviewer.Value 
defaultcorps = Me.Corps.Value 

'Check to see if ClientID field is Blank. 
If IsNull(Me.ClientID) Then 

'Check that Corps field is filled in 

If IsNull(Me.Corps) Then 
    MsgBox "Corps must be entered before saving record.", vbOKOnly 
    Me.Corps.SetFocus 
'set client id base on corps by finding the highest id and adding 1 to that number 
Else 
Me.ClientID = IIf(DMax("[ClientID]", "tClientinfo", "[CorpsName]=" & "'defaultcorps'") Is Null, 0, DMax("[ClientID]", "tClientinfo", "[CorpsName]=" & "'defaultcorps'")) + 1 
End If 
End If 
MsgBox "Done", vbOKOnly 

'save record 
'DoCmd.RunCommand acCmdSaveRecord 
'Me.stateidnum1 = "" 
'open new record 
'DoCmd.GoToRecord , , acNewRec 

'set field default value 
'Me.Interviewer.Value = defaultinterviewr 
'Me.Corps.Value = defaultcorps 

'Me.Child_Subform.Form.AllowAdditions = True 

End Sub 

答えて

0

、ありがとうございました。私が目にする次のことは、おそらくあなたの主な原因は、VBA内で式IIf()を使用しているという事実です。使用しているIIf()式は、クエリまたはテキストボックス内で動作しますが、VBAにはその前の行で正しく使用しているIf文ブロックがあります。

次のように私は実際にはさらに多くのことを簡素化するためのNz関数を使用します。

はIあなたの全体的なコードで再見て、「defaultcorps」は変数であることに気づい以下のコメントのオフに基づいてを更新し、もともとあなたがフィルタリングしようと考えていた値ではありません。変数を引用符で囲んでいます。私の更新された答えはあなたのために働くはずです。

Me.ClientID = (Nz(DMax("[ClientID]", "tClientinfo", "[CorpsName]= '" & defaultcorps & "'"),0)+1) 
+0

アンソニーDMAX機能が私の約束であることを指摘してくれてありがとうございます。フィールド、テーブル、およびcriteraの正しい構文を理解することはできませんが。 – DavidR

+0

上記の私の更新答えを見てください。私はdefaultcorpsが変数でデータ値ではなかったという事実を忘れていました。このアップデートでは、探しているものが得られるはずです。 –

+0

Anthonyコードが動作していただきありがとうございます。 – DavidR

関連する問題