-
WSgeofrichardson
AskWoody LoungerHi
Thanks for that
All working well.
Geof -
WSgeofrichardson
AskWoody LoungerHi
Thank you for that.
I learned a lot from that technique & surprise!! I can apply it somewhere else.Thanks again
Geof -
WSgeofrichardson
AskWoody LoungerHi Anne
Thanks for the thought.
I started playing about with this, and surprise the problem just gets bigger.
Cheers
GeofSub SuppressPageNumber()
‘Purpose is to insert a pair of section breaks at position of selection
‘skip pagenumbering for new section and restart numbering on
‘first page of following section from previous page number.
Dim curPageNum As Integer
Dim NextPageNum As Integer
Dim newSectnNum As IntegercurPageNum = Selection.Information(wdActiveEndPageNumber)
NextPageNum = curPageNum + 1
MsgBox (“Numbers are ,” & curPageNum & “,” & NextPageNum)
Selection.InsertBreak Type:=wdSectionBreakNextPage
Selection.InsertBreak Type:=wdSectionBreakNextPage
newSectnNum = Selection.Information(wdActiveEndSectionNumber)
MsgBox (newSectnNum)
With ActiveDocument.Sections(newSectnNum)
With .Headers(wdHeaderFooterPrimary)
.LinkToPrevious = False
.PageNumbers.RestartNumberingAtSection = True
.PageNumbers.StartingNumber = NextPageNum
.PageNumbers.Add
End With
End With
End Sub -
WSgeofrichardson
AskWoody LoungerHi
You could try using the “IncludeText “field.
It requests a filename ..Check word help
Cheers
Geof -
WSgeofrichardson
AskWoody LoungerHi
Could you put some unbound controls in the form Header or footer. Use the contents of these once populated as the basis of a query . Then use docmd findrecord ..
Alternatively create a record set from the querydef and populate the form detail from the record set.Cheers
Geof -
WSgeofrichardson
AskWoody LoungerHi
Is this the sort of thing you are after.docmd.OpenForm “frmName”,acNormal,[QueryNameHere optional if blank leave a comma],[SQLClauseHere without ‘WHERE’ optional],acFormEdit
Cheers
Geof -
WSgeofrichardson
AskWoody LoungerHi
Start with the simple things ….
Are you sure that only Access exhibits this “furry” colour ?
I have an old monitor which responds to a slap on the side. Dry joint in some solder somewhere.I also have a multi switch box to allow me to run 4 computers to 1 monitor. A dicky connection responds to a wiggle or two and the colour comes right.
Cheers
Geof -
WSgeofrichardson
AskWoody LoungerHello there
We need a ittle more information pls.
what tables do you have ?Which fieldNames are unique in the relevent tables ?
Cheers
Geof -
WSgeofrichardson
AskWoody LoungerHi
Problem solved.
Thanks for the help.
Still dont understand the API calls but it works.
Thanks to Ken Gatz & Paul Litman, Charlotte, Mark , Dev Ashish, Liquorman & the Lounge.Here is my solution … dragged in from the MVP Access website http://www.mvps.org/access/forms.
I put this into a separate module along with my function named QuerysaveAs.
I called QuerysaveAs from the button on my form.
Within this code I assigned the variable strTargetQuery to the name of the relevent QueryDef which is in turn an argument in the transferspreadsheet command.
I dont why it owrks but it does.Geof
———————————————————–
Option Compare Database
Option Explicit
‘***************** Code Start **************
‘This code was originally written by Ken Getz.
‘It is not to be altered or distributed,
‘except as part of an application.
‘You are free to use it in any application,
‘provided the copyright notice is left unchanged.
‘
‘ Code courtesy of:
‘ Microsoft Access 95 How-To
‘ Ken Getz and Paul Litwin
‘ Waite Group Press, 1996Type tagOPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
strFilter As String
strCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
strFile As String
nMaxFile As Long
strFileTitle As String
nMaxFileTitle As Long
strInitialDir As String
strTitle As String
Flags As Long
nFileOffset As Integer
nFileExtension As Integer
strDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End TypeDeclare Function aht_apiGetOpenFileName Lib “comdlg32.dll” _
Alias “GetOpenFileNameA” (OFN As tagOPENFILENAME) As BooleanDeclare Function aht_apiGetSaveFileName Lib “comdlg32.dll” _
Alias “GetSaveFileNameA” (OFN As tagOPENFILENAME) As Boolean
Declare Function CommDlgExtendedError Lib “comdlg32.dll” () As LongGlobal Const ahtOFN_READONLY = &H1
Global Const ahtOFN_OVERWRITEPROMPT = &H2
Global Const ahtOFN_HIDEREADONLY = &H4
Global Const ahtOFN_NOCHANGEDIR = &H8
Global Const ahtOFN_SHOWHELP = &H10
‘ You won’t use these.
‘Global Const ahtOFN_ENABLEHOOK = &H20
‘Global Const ahtOFN_ENABLETEMPLATE = &H40
‘Global Const ahtOFN_ENABLETEMPLATEHANDLE = &H80
Global Const ahtOFN_NOVALIDATE = &H100
Global Const ahtOFN_ALLOWMULTISELECT = &H200
Global Const ahtOFN_EXTENSIONDIFFERENT = &H400
Global Const ahtOFN_PATHMUSTEXIST = &H800
Global Const ahtOFN_FILEMUSTEXIST = &H1000
Global Const ahtOFN_CREATEPROMPT = &H2000
Global Const ahtOFN_SHAREAWARE = &H4000
Global Const ahtOFN_NOREADONLYRETURN = &H8000
Global Const ahtOFN_NOTESTFILECREATE = &H10000
Global Const ahtOFN_NONETWORKBUTTON = &H20000
Global Const ahtOFN_NOLONGNAMES = &H40000
‘ New for Windows 95
Global Const ahtOFN_EXPLORER = &H80000
Global Const ahtOFN_NODEREFERENCELINKS = &H100000
Global Const ahtOFN_LONGNAMES = &H200000Function TestIt()
Dim strFilter As String
Dim lngFlags As Long
strFilter = ahtAddFilterItem(strFilter, “Access Files (*.mda, *.mdb)”, _
“*.MDA;*.MDB”)
strFilter = ahtAddFilterItem(strFilter, “dBASE Files (*.dbf)”, “*.DBF”)
strFilter = ahtAddFilterItem(strFilter, “Text Files (*.txt)”, “*.TXT”)
strFilter = ahtAddFilterItem(strFilter, “All Files (*.*)”, “*.*”)
MsgBox “You selected: ” & ahtCommonFileOpenSave(InitialDir:=”C:”, _
Filter:=strFilter, FilterIndex:=3, Flags:=lngFlags, _
DialogTitle:=”Hello! Open Me!”)
‘ Since you passed in a variable for lngFlags,
‘ the function places the output flags value in the variable.
Debug.Print Hex(lngFlags)
End FunctionFunction GetOpenFile(Optional varDirectory As Variant, _
Optional varTitleForDialog As Variant) As Variant
‘ Here’s an example that gets an Access database name.
Dim strFilter As String
Dim lngFlags As Long
Dim varFileName As Variant
‘ Specify that the chosen file must already exist,
‘ don’t change directories when you’re done
‘ Also, don’t bother displaying
‘ the read-only box. It’ll only confuse people.
lngFlags = ahtOFN_FILEMUSTEXIST Or _
ahtOFN_HIDEREADONLY Or ahtOFN_NOCHANGEDIR
If IsMissing(varDirectory) Then
varDirectory = “”
End If
If IsMissing(varTitleForDialog) Then
varTitleForDialog = “”
End If‘ Define the filter string and allocate space in the “c”
‘ string Duplicate this line with changes as necessary for
‘ more file templates.
strFilter = ahtAddFilterItem(strFilter, _
“Access (*.mdb)”, “*.MDB;*.MDA”)
strFilter = ahtAddFilterItem(strFilter, _
“Excel (*.xls)”)
strFilter = ahtAddFilterItem(strFilter, _
“Word (*.doc)”)‘ Now actually call to get the file name.
varFileName = ahtCommonFileOpenSave( _
OpenFile:=False, _
InitialDir:=varDirectory, _
Filter:=strFilter, _
Flags:=lngFlags, _
DialogTitle:=varTitleForDialog)
If Not IsNull(varFileName) Then
varFileName = TrimNull(varFileName)
End If
GetOpenFile = varFileName
End FunctionFunction ahtCommonFileOpenSave( _
Optional ByRef Flags As Variant, _
Optional ByVal InitialDir As Variant, _
Optional ByVal Filter As Variant, _
Optional ByVal FilterIndex As Variant, _
Optional ByVal DefaultExt As Variant, _
Optional ByVal FileName As Variant, _
Optional ByVal DialogTitle As Variant, _
Optional ByVal hwnd As Variant, _
Optional ByVal OpenFile As Variant) As Variant
‘ This is the entry point you’ll use to call the common
‘ file open/save dialog. The parameters are listed
‘ below, and all are optional.
‘
‘ In:
‘ Flags: one or more of the ahtOFN_* constants, OR’d together.
‘ InitialDir: the directory in which to first look
‘ Filter: a set of file filters, set up by calling
‘ AddFilterItem. See examples.
‘ FilterIndex: 1-based integer indicating which filter
‘ set to use, by default (1 if unspecified)
‘ DefaultExt: Extension to use if the user doesn’t enter one.
‘ Only useful on file saves.
‘ FileName: Default value for the file name text box.
‘ DialogTitle: Title for the dialog.
‘ hWnd: parent window handle
‘ OpenFile: Boolean(True=Open File/False=Save As)
‘ Out:
‘ Return Value: Either Null or the selected filename
Dim OFN As tagOPENFILENAME
Dim strFileName As String
Dim strFileTitle As String
Dim fResult As Boolean
‘ Give the dialog a caption title.
If IsMissing(InitialDir) Then InitialDir = CurDir
If IsMissing(Filter) Then Filter = “”
If IsMissing(FilterIndex) Then FilterIndex = 1
If IsMissing(Flags) Then Flags = 0&
If IsMissing(DefaultExt) Then DefaultExt = “”
If IsMissing(FileName) Then FileName = “”
If IsMissing(DialogTitle) Then DialogTitle = “”
If IsMissing(hwnd) Then hwnd = Application.hWndAccessApp
If IsMissing(OpenFile) Then OpenFile = False ‘ GR changed from True ************
‘ Allocate string space for the returned strings.
strFileName = Left(FileName & String(256, 0), 256)
strFileTitle = String(256, 0)
‘ Set up the data structure before you call the function
With OFN
.lStructSize = Len(OFN)
.hwndOwner = hwnd
.strFilter = Filter
.nFilterIndex = FilterIndex
.strFile = strFileName
.nMaxFile = Len(strFileName)
.strFileTitle = strFileTitle
.nMaxFileTitle = Len(strFileTitle)
.strTitle = DialogTitle
.Flags = Flags
.strDefExt = DefaultExt
.strInitialDir = InitialDir
‘ Didn’t think most people would want to deal with
‘ these options.
.hInstance = 0
‘.strCustomFilter = “”
‘.nMaxCustFilter = 0
.lpfnHook = 0
‘New for NT 4.0
.strCustomFilter = String(255, 0)
.nMaxCustFilter = 255
End With
‘ This will pass the desired data structure to the
‘ Windows API, which will in turn it uses to display
‘ the Open/Save As Dialog.
If OpenFile Then
fResult = aht_apiGetOpenFileName(OFN)
Else
fResult = aht_apiGetSaveFileName(OFN)
End If‘ The function call filled in the strFileTitle member
‘ of the structure. You’ll have to write special code
‘ to retrieve that if you’re interested.
If fResult Then
‘ You might care to check the Flags member of the
‘ structure to get information about the chosen file.
‘ In this example, if you bothered to pass in a
‘ value for Flags, we’ll fill it in with the outgoing
‘ Flags value.
If Not IsMissing(Flags) Then Flags = OFN.Flags
ahtCommonFileOpenSave = TrimNull(OFN.strFile)
Else
ahtCommonFileOpenSave = vbNullString
End If
End FunctionFunction ahtAddFilterItem(strFilter As String, _
strDescription As String, Optional varItem As Variant) As String
‘ Tack a new chunk onto the file filter.
‘ That is, take the old value, stick onto it the description,
‘ (like “Databases”), a null character, the skeleton
‘ (like “*.mdb;*.mda”) and a final null character.If IsMissing(varItem) Then varItem = “*.*”
ahtAddFilterItem = strFilter & _
strDescription & vbNullChar & _
varItem & vbNullChar
End FunctionPrivate Function TrimNull(ByVal strItem As String) As String
Dim intPos As Integer
intPos = InStr(strItem, vbNullChar)
If intPos > 0 Then
TrimNull = Left(strItem, intPos – 1)
Else
TrimNull = strItem
End If
End Function
‘Special thanks to Ken Gatz & Paul Litwin
‘************** Code End *****************
Function QuerySaveAs(strTargetQuery As String)
‘Special thanks to Ken Gatz & Paul Litwin
Dim strFilter As String
Dim strSaveFileName As String
On Error GoTo errorhandler:strFilter = ahtAddFilterItem(strFilter, “Excel Files (*.xls)”, “*.xls”)
strSaveFileName = ahtCommonFileOpenSave(OpenFile:=False, Filter:=strFilter, _
Flags:=ahtOFN_OVERWRITEPROMPT Or ahtOFN_READONLY)
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, strTargetQuery, strSaveFileName
errorhandler:
Select Case Err.Number
Case 0, 2522
Exit Function
Case Else
MsgBox (“Error numbered ” & Err.Number & ” occurred” & Chr(13) & Err.Description)
End Select
End Function -
WSgeofrichardson
AskWoody LoungerSeptember 22, 2001 at 1:27 am in reply to: Requery Of SubForm Based On A Query (Access 2000) #543646Hi
Can you not set the LinkChild, LinkMaster properties of the subform to the primary keyfield of the main form ?
Failing that can you set an event for the main form
maybe onCurrent
to requery the subform
e.g
sub frmMain_OnCurrent
forms!frmmainForm!frmSubForm.requery
end subHope this helps
Cheers
Geof -
WSgeofrichardson
AskWoody LoungerHi
I would try and set up unbound combo boxes:
Dealer, Ivoice, detailsThe contents of cbox Invoice based on a query that took the value of cboxDealer as input:
Select blah
Where varInvoice = forms!frmMyform!cboxDealerThe on Change event of cboxDealer would need to requery cboxInvoice:
frms!Myform!cboxInvoice.requery
I think this technique will work for you
Really interested in other’s ideas.
Cheers
Geof -
WSgeofrichardson
AskWoody LoungerHi Folks
Thanks to Charlotte & Mark.
It looks as if CommonDialog control is out of control.
I will now learn about the API’s. Off tp the Access MVPs we go.Thanks again.
Geof -
WSgeofrichardson
AskWoody LoungerHi Charlotte
Thanks for the thoughts.
In this case it is fine to move these records and delete the associated records.This situation involves product pre purchase inspections. If a decision is made to purchase then a record is populated in the stock table. The inspection results are no longer needed.
I perceived a need to keep the tblStock and TblPP-Stock separate.
Probably breaking a few rules along the way. However all seems to be working at present.
Cheers
Geof -
WSgeofrichardson
AskWoody LoungerThanks Mark & Charlotte
I will work on series of delete from the lowest upwards.
I
The primary table has Yes/No field.I am querying for “Yes” and copying the results (from primary table only) to another table. I then wanted to cascade delete.
Cheers & thanks for the help.
Geof
-
WSgeofrichardson
AskWoody LoungerHi Charlotte
I want to give users the ability to delete a record in the primary table and the associated records in two related tables of the 1-M-M but I dont want to have cascade deletes as the default referential integrity settings.I was thinking that I would create a routine that defined a delete querydef and toggle the cascade property of the relationship.
Am I barking up the wrong tree ?
Cheers & thanks
Geof
![]() |
Patch reliability is unclear. Unless you have an immediate, pressing need to install a specific patch, don't do it. |
SIGN IN | Not a member? | REGISTER | PLUS MEMBERSHIP |

Plus Membership
Donations from Plus members keep this site going. You can identify the people who support AskWoody by the Plus badge on their avatars.
AskWoody Plus members not only get access to all of the contents of this site -- including Susan Bradley's frequently updated Patch Watch listing -- they also receive weekly AskWoody Plus Newsletters (formerly Windows Secrets Newsletter) and AskWoody Plus Alerts, emails when there are important breaking developments.
Get Plus!
Welcome to our unique respite from the madness.
It's easy to post questions about Windows 11, Windows 10, Win8.1, Win7, Surface, Office, or browse through our Forums. Post anonymously or register for greater privileges. Keep it civil, please: Decorous Lounge rules strictly enforced. Questions? Contact Customer Support.
Search Newsletters
Search Forums
View the Forum
Search for Topics
Recent Topics
-
0Patch, where to begin
by
cassel23
9 hours, 50 minutes ago -
CFPB Quietly Kills Rule to Shield Americans From Data Brokers
by
Alex5723
12 hours, 50 minutes ago -
89 million Steam account details just got leaked,
by
Alex5723
35 minutes ago -
KB5058405: Linux – Windows dual boot SBAT bug, resolved with May 2025 update
by
Alex5723
21 hours, 23 minutes ago -
A Validation (were one needed) of Prudent Patching
by
Nibbled To Death By Ducks
12 hours, 21 minutes ago -
Master Patch Listing for May 13, 2025
by
Susan Bradley
14 hours, 45 minutes ago -
Installer program can’t read my registry
by
Peobody
22 minutes ago -
How to keep Outlook (new) in off position for Windows 11
by
EspressoWillie
10 hours, 9 minutes ago -
Intel : CVE-2024-45332, CVE-2024-43420, CVE-2025-20623
by
Alex5723
17 hours, 29 minutes ago -
False error message from eMClient
by
WSSebastian42
1 day, 8 hours ago -
Awoke to a rebooted Mac (crashed?)
by
rebop2020
1 day, 17 hours ago -
Office 2021 Perpetual for Mac
by
rebop2020
1 day, 18 hours ago -
AutoSave is for Microsoft, not for you
by
Will Fastie
15 hours, 24 minutes ago -
Difface : Reconstruction of 3D Human Facial Images from DNA Sequence
by
Alex5723
1 day, 22 hours ago -
Seven things we learned from WhatsApp vs. NSO Group spyware lawsuit
by
Alex5723
23 hours, 21 minutes ago -
Outdated Laptop
by
jdamkeene
2 days, 3 hours ago -
Updating Keepass2Android
by
CBFPD-Chief115
2 days, 9 hours ago -
Another big Microsoft layoff
by
Charlie
2 days, 8 hours ago -
PowerShell to detect NPU – Testers Needed
by
RetiredGeek
6 hours, 13 minutes ago -
May 2025 updates are out
by
Susan Bradley
8 hours, 6 minutes ago -
Windows 11 Insider Preview build 26200.5600 released to DEV
by
joep517
2 days, 14 hours ago -
Windows 11 Insider Preview build 26120.3964 (24H2) released to BETA
by
joep517
2 days, 14 hours ago -
Drivers suggested via Windows Update
by
Tex265
2 days, 14 hours ago -
Thunderbird release notes for 128 esr have disappeared
by
EricB
10 hours, 49 minutes ago -
CISA mutes own website, shifts routine cyber alerts to X, RSS, email
by
Nibbled To Death By Ducks
2 days, 21 hours ago -
Apple releases 18.5
by
Susan Bradley
2 days, 16 hours ago -
Fedora Linux 40 will go end of life for updates and support on 2025-05-13.
by
Alex5723
2 days, 23 hours ago -
How a new type of AI is helping police skirt facial recognition bans
by
Alex5723
2 days, 23 hours ago -
Windows 7 ISO /Windows 10 ISO
by
ECWS
1 day, 8 hours ago -
No HP software folders
by
fpefpe
3 days, 7 hours ago
Recent blog posts
Key Links
Want to Advertise in the free newsletter? How about a gift subscription in honor of a birthday? Send an email to sb@askwoody.com to ask how.
Mastodon profile for DefConPatch
Mastodon profile for AskWoody
Home • About • FAQ • Posts & Privacy • Forums • My Account
Register • Free Newsletter • Plus Membership • Gift Certificates • MS-DEFCON Alerts
Copyright ©2004-2025 by AskWoody Tech LLC. All Rights Reserved.