Consultor Eletrônico



Kbase 21840: ACTIVEX -- How To Create Records In MS Access Using Forms
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   27/02/2002
SUMMARY:

This Solution shows you a way you can create records through existing Microsoft Access forms. In the sample code below, a record is inserted into a MS Access database via a Form called "customer", containing 2 fields: CustNum and Name.

SOLUTION:

/* Data Mode */
&GLOBAL-DEFINE acFormAdd 0.
&GLOBAL-DEFINE acFormEdit 1.

/* View */
&GLOBAL-DEFINE acNormal 0.
&GLOBAL-DEFINE acFormDS 3.

/* Object type */
&GLOBAL-DEFINE acForm 2 .

/* Save */
&GLOBAL-DEFINE acSavePrompt 0.
&GLOBAL-DEFINE acSaveYes 1.
&GLOBAL-DEFINE acSaveNo 2.

DEFINE VARIABLE hAccess AS COM-HANDLE NO-UNDO.
DEFINE VARIABLE hForm AS COM-HANDLE NO-UNDO.

DEFINE VARIABLE iView AS INTEGER NO-UNDO.
DEFINE VARIABLE iObjType AS INTEGER NO-UNDO.
DEFINE VARIABLE iDataMode AS INTEGER NO-UNDO.
DEFINE VARIABLE iSave AS INTEGER NO-UNDO.
DEFINE VARIABLE iQuit AS INTEGER NO-UNDO.

iDataMode = {&acFormAdd}
iView = {&acNormal}
iObjType = {&acForm}
iSave = {&acSaveYes}
iQuit = {&acSaveYes}

CREATE "Access.Application" hAccess.

/* Open athe MS Access database */
hAccess:OpenCurrentDatabase("C:\work\91c\sports.mdb", NO).

/* Open the Form named "Customer" in "Add" mode */
hAccess:DoCmd:OpenForm("customer",iView,,,iDataMode,).

hAccess:Visible = TRUE.

hForm = hAccess:Forms:Item(0).

/* Assign each field of the form */
hForm:Controls("CustNum") = 85.
hForm:Controls("Name") = "PSC".

/* Close the Form */
hAccess:DoCmd:Close(iObjType, "customer", iSave ) .

/* Close the MS Access Database */
hAccess:CloseCurrentDatabase.

/* Quit MS Access */
hAccess:Quit(iQuit).

/* Release COM objects */
RELEASE OBJECT hForm.
RELEASE OBJECT hAccess.