Previous Topic

Next Topic

Inhoudsopgave

Book Index

CancelUpdates Procedure

Function Procedure CancelUpdates

Description

Cancels any changes made during the update.

Example

Option Explicit

Sub Main()

' General script info

MsgBox ScriptEngineMajorVersion & ScriptEngineminorversion

' Declare all variables

Dim Qry

Dim quDefaultValue

Dim quCustomer

Dim appAccess

Dim dbsCustomer

Dim rsCustomers

Dim Counter

Dim fldDefaultValue

' Create an instance of ACCESS

Set appAccess = CreateObject("Access.Application")

' Open the database supplied by the customer

Set dbsCustomer = appAccess.DBEngine.OpenDatabase("CustDB.mdb", False, True)

' Open the Customer table of the customer

Set rsCustomers = dbsCustomer.OpenRecordset("Customers")

' Check whether the table contains records

If Not rsCustomers.EOF then

Counter = 0

' Retrieve the record containing the default values

Qry = "ip_sel_DefaultValueRecord @DefValueCode = 1"

Set quDefaultValue = Application.DataBase.CreateQuery( Qry )

quDefaultValue.Open

' To prevent pending results, set the values in the Var list

For Each fldDefaultValue In quDefaultValue.Fields

Application.Vars(fldDefaultValue.Name) = fldDefaultValue.Value

Next

' Close the DefaultValue query

quDefaultValue.Close

Set quDefaultValue = Nothing

' Retrieve an empty Customer record, to carry out inserts

Set quCustomer = Application.DataBase.CreateUpdateQuery("Customer", "Customer")

quCustomer.SQL = "ip_sel_CustomerRecord @CustId = ''"

quCustomer.Open

While not rsCustomers.EOF

' Add an empty record to insert data

quCustomer.Insert

' Enter the fields supplied by the customer database

' KeyFields always in capitals!

quCustomer("CustId").Value = UCase(rsCustomers("CustomerNumber"))

quCustomer("Name").Value = rsCustomers("Name")

quCustomer("Addr").Value = rsCustomers("Address")

quCustomer("City").Value = rsCustomers("City")

' Enter the fields that can be retrieved from the DefaultValue

quCustomer("PaymTermCode").Value = Application.Vars("PaymTermCode")

quCustomer("PaymTermCodeDefInd").Value = true

quCustomer("DelTermCode").Value = Application.Vars("DelTermCode")

quCustomer("DelTermCodeDefInd").Value = true

quCustomer("CountryCode").Value = Application.Vars("CountryCode")

quCustomer("LangCode").Value = Application.Vars("LangCode")

quCustomer("CurrCode").Value = Application.Vars("CurrCode")

quCustomer("CurrCodeDefInd").Value = true

quCustomer("PriceListCode").Value = Application.Vars("CustPriceListCode")

quCustomer("GrpCode").Value = Application.Vars("CustGrpCode")

quCustomer("ShipAgentCode").Value = Application.Vars("ShipAgentCode")

quCustomer("ShipAgentCodeDefInd").Value = true

quCustomer("Seller").Value = Application.Vars("Seller")

quCustomer("SellerDefInd").Value = true

quCustomer("QuotLayCode").Value = Application.Vars("QuotLayCode")

quCustomer("QuotLayCodeDefInd").Value = true

quCustomer("SalesOrdConfDocLayCode").Value = Application.Vars("SalesOrdConfDocLayCode")

quCustomer("SalesOrdConfDocLayCodeDefInd").Value = true

quCustomer("ShipDocLayCode").Value = Application.Vars("ShipDocLayCode")

quCustomer("ShipDocLayCodeDefInd").Value = true

quCustomer("InvLayCode").Value = Application.Vars("InvLayCode")

quCustomer("InvLayCodeDefInd").Value = true

quCustomer("ShipDocCreCode").Value = Application.Vars("ShipDocCreCode")

quCustomer("ShipDocCreCodeDefInd").Value = true

quCustomer("InvCreCode").Value = Application.Vars("InvCreCode")

quCustomer("InvCreCodeDefInd").Value = true

quCustomer("SalesOrdConfInd").Value = Application.Vars("SalesOrdConfInd")

' Since booleans and numbers cannot be NULL, enter a default

quCustomer("VATSrchInd").Value = false

quCustomer("SendToFinInd").Value = false

quCustomer("SalesOrdConfInd").Value = true

' This field is invisible but still has to be entered

quCustomer("Balance").Value = 0

' Enter a number of values that the customer wants as defaults

quCustomer("CredLimit").Value = 10000

' Commit the new record to the Isah database

' Turn on error handling

on error resume next

quCustomer.Post

' Check whether an error occurred

If Err.Number <> 0 then

msgbox "Error" & err.description

quCustomer.CancelUpdates

err.clear

end if

' Turn off error handling

on error goto 0

' Another record has been converted

Counter = Counter + 1

' Go to next record to convert

rsCustomers.MoveNext

end

' Close the Customer query

quCustomer.Close

Set quCustomer = Nothing

if Counter <> 1 then

MsgBox & Teller & " records converted"

else

MsgBox "1 record converted"

end if

else

MsgBox "No records to convert"

end if

' Close the Customers record set

rsCustomers.Close

Set rsCustomers = Nothing

' Close the Customer database

dbsCustomer.Close

Set dbsCustomer = Nothing

' Close the instance of the ACCESS application

appAccess.Quit

Set appAccess = Nothing

End Sub