2016-06-30 4 views
0

Renaud BomPuisが提供する答えを「サンプルデータベース(https://dl.dropboxusercontent.com/u/52900980/StackOverflow/SO25044339.accdb)」という形で「私はMicrosoft Accessを使用してドキュメントデータベースを作成する」という私の要件に合った古いポストを探しました。ドキュメントデータベースを作成する

私のニーズに合わせてソースコードを操作し、メインデータベースに正常に挿入することができました。私が持っている唯一の問題は、私にとって間違った場所に新しいレコードを作成するということです。ユーザーが[ファイルをアップロード]をクリックすると、新しいレコードが作成され、ファイルダイアログを使用してファイルを選択できるようにフォームが開きます。しかし、ユーザーが気を変えてキャンセルをクリックすると、レコードはすでに作成されていますが、ファイルパスは空です。

ユーザーが確認しても新しいレコードを作成できるようにしたいが、コードを正しく操作して正しい順序で操作できないようだ。

誰でも助けてもらえますか?どうもありがとう。

EDIT:(私は仮定)frmDocSelecttblDocumentsに既存のレコードに依存しているため、コードのコメント

Private Sub btnUploadDoc_Click() ' Create a new record in the Documents table for the selected Works No 
Dim DocID As Variant 
Dim db As dao.Database 
Dim rs As dao.Recordset 

Set db = CurrentDb() 
Set rs = db.OpenRecordset("tblDocuments", dbOpenDynaset, dbFailOnError) 
With rs 
    .AddNew !WorksNo = cboWorksNo 
    .Update 
    .Move 0, .LastModified 
    DocID = !DocID 
    .Close 
End With 
Set rs = Nothing 
Set db = Nothing 
DoCmd.OpenForm "frmDocSelect", WhereCondition:="DocID=" & DocID 
End Sub 
+2

ような何かをボタンクリックアップロードファイルのコードを示していただけますか?私たちの企業ネットワークでは、私はdao.Database dao.Recordset として暗いRSとしてバリアント 薄暗いデシベルとして選択された作品はありません 薄暗いDocIDのためにドキュメントテーブルに新しいレコードを作成」 –

+0

ます。Private Sub btnUploadDoc_Click() デシベルをダウンロードすることができませんRS .AddNew !WorksNo = cboWorksNo .Update .Move 0、.LastModified たDocID =!DocIDを で設定したDB = CurrentDb() セットrs = db.OpenRecordset( "tblDocuments"、dbOpenDynaset、dbFailOnError) 。閉じる 最後に を設定するrs = Nothing DBを設定する= Nothing DoCmd.OpenForm "frmDocSelect"、WhereCondition:= "DocID ="&DocID End Sub – Chris

+0

doc selectコードがfrmDocSelectフォームにあるとします。あなたもそれを投稿する必要があります(ただし、元の投稿を編集し、最後の@Andreのようなコードタグでコードをラップしてください)。新しいレコード – dbmitch

答えて

0

からこれは、些細な変更ではありません。

ユーザーが[キャンセル]をクリックすると、新しいレコードを単に削除するのが最も良い方法です。

あなたは

Sub cmdCancel_Click() 
    Dim DocID As Long 
    DocID = Me.DocID 
    ' Close form before deleting, to avoid a flicker of "#Deleted" 
    DoCmd.Close acForm, Me.Name, acSaveNo 
    CurrentDb.Execute "DELETE * FROM tblDocuments WHERE DocID=" & DocID 
End Sub 
+0

を開く前に、新しいレコードを作成する前にアップロードファイルをチェックして、現在のフォームでそれを行うだけなら、おそらくもっと簡単だと思います。私はアンドレの削除ソリューションを試してみるつもりです。 – Chris

関連する問題