If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|
Thread Tools | Display Modes |
#21
|
|||
|
|||
Creating a custom text export file (inc. header & footer) from
Not certain I understand what you mean "a criteria control wth the criteria
'Run No' based on a field called [Run_No]" If you run the query manually, does it prompt the user to enter the criteria? Dim db As DAO.Database Dim qdf As DAO.QueryDef Dim rs As DAO.Recordset Dim strRun_No As String strRun_No = InputBox("Enter the Run No") If Len(strRun_No) 0 Then Set db = CurrentDb() Set qdf = db.QueryDefs("Generate_KML") qdf.Parameters("Run_No") = [Run_No] ' or qdf![Run_No] = [Run_No] Set rs = qdf.OpenRecordset(dbOpenSnapshot) ' etc. End If -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no private e-mails, please) "efandango" wrote in message ... Douglas, thanks for that article, I understand what it is implying, but don't really get how to implement the suggestions. It seems to me that it relates more to forms controls than underlying query criteria. I tried this: (you'll probably smile at my naivety...), but i can't figure out what or even how to contextualise the code to reference my criteria field: Set rsR = CurrentDb.OpenRecordset("Generate_KML", dbOpenSnapshot) qdf![Generate_KML.Run_No] = [Run No] but it didn't work. Unlike that articles suggestion, I am not accessing a form's control, but a criteria control with the criteria 'Run No' based on a field called [Run_No] "Douglas J. Steele" wrote: http://www.mvps.org/access/queries/qry0013.htm -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no private e-mails, please) "efandango" wrote in message ... Douglas, John. Now that I have the code working, how can I adapt it to take a criteria from the underlying query. Each set of addresses (16 addresses per set) within the query is based on a Main Record field called [Run_No]. But when I try to use this criteria in the query and then run your code, I get the following error message: Run-time error '3061'; Too few parameters. Expected 1. and the VBA throws a highlighted yellow error: Set rsR = CurrentDb.OpenRecordset("Generate_KML", dbOpenSnapshot) "Douglas J. Steele" wrote: Print #lngFN, "?xml version=""1.0"" encoding=""UTF-8""?" Is the expected string supposed to have two double quotes on either side of UTF-8? If so, you need Print #lngFN, "?xml version=""1.0"" encoding=""""UTF-8""""?" (The rule is everytime you want a quote to appear inside a quoted string, you need to double the quotes.) -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no private e-mails, please) "efandango" wrote in message ... Douglas, Can you help advise on this VBA problem please? When I paste or type this line: Print #lngFN, "?xml version="1.0" encoding=""UTF-8""?" I get Print #lngFN, "?xml version="; 1#; " encoding=""UTF-8""?" the 1.0 becomes 1# I can't seem to get the VBA window to accept John's code, weird or some kind of switch that is turned off? "Douglas J. Steele" wrote: Replace Set rsR = CurrentDb.Open("Generate_KML") Print #lngFN, rsR.Fields("KML_Address") Close rsR with Set rsR = CurrentDb.Open("Generate_KML") Do Until rsR.EOF = True Print #lngFN, rsR.Fields("KML_Address") rsR.MoveNext Loop Close rsR -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no private e-mails, please) "efandango" wrote in message ... help?... "efandango" wrote: Douglas/John, that did the trick... but I have a secondary problem (that i think is of my making...). The .kml file only contains the first address in the query, and I think it's because of my badly worded sentence 'I have an address query which ouputs a single field to text strings for Google Earth .kml file format parameters.' in my opening post. What I really meant was it is a single field (among other fields in the query), but that it contains multiple records/data. eg: Main St, London, W1 South St, London, W2 East St, London, SE1 Is it possible to get the routine to print All the data for that field to the kml file? "Douglas J. Steele" wrote: That's supposed to be rsR.Close (the Close #lngFN is correct though) -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no private e-mails, please) "efandango" wrote in message ... John, I now get this error in the line: Close rsR: (highlighting the word 'Close') Compile error: Type mismatch: "John Nurick" wrote: My fault - though I warned you it was air code. Should be CurrentDB.OpenRecordset("Generate_KML", dbOpenSnapshot) not CurrentDB.Open("Generate_KML") On Thu, 10 May 2007 16:41:00 -0700, efandango wrote: John, Just ignore the previous two posts from me. This is how far i have got in adapting your code Private Sub Test_Click() Dim rsR As DAO.Recordset Dim strLine As String Dim lngFN As Long 'Create empty text file lngFN = FreeFile() Open "W:\Folder\Addresses.kml" For Output As #lngFN 'Output header 'NB: need to double quotes in literal strings Print #lngFN, "?xml version="; 1#; " encoding=""UTF-8""?" Print #lngFN, "kml xmlns=""http://earth.google.com/kml/2.0""" Print #lngFN, "Document" Print #lngFN, "nameAddress List/name" Print #lngFN, "Folder" Print #lngFN, "nameLocations/name" Print #lngFN, "open1/open" '... 'Output address Set rsR = CurrentDb.Open("Generate_KML") Print #lngFN, rsR.Fields("KML_Address") Close rsR 'Output footer Print #lngFN, "/Folder" Print #lngFN, "/Document" Print #lngFN, "/kml" '... Close #lngFN End Sub But i get an error message: 'Method or Data Member not found' on the word 'Open' in the following line: Set rsR = CurrentDb.Open("Generate_KML") It suggests that something is mispelled or wrong reference, so I was worried that the query it was calling was two seperate words, so I changed it to one whole_word. But it still reports the same error message. Can you help me with this? "John Nurick" wrote: There are many ways of skinning this cat. I'd probably do something like this (air code): Dim rsR As DAO.Recordset Dim strLine As String Dim lngFN As Long 'Create empty text file lngFN = FreeFile() Open "D:\Folder\Addresses.kml" For Output As #lngFN 'Output header 'NB: need to double quotes in literal strings Print #lngFN, "?xml version="1.0" encoding=""UTF-8""?" Print #lngFN, "kml xmlns=""http://earth.google.com/kml/2.0""" '... 'Output address Set rsR = CurrentDB.Open("My Query") Print #lngFN, rsR.Fields("kml Address") Close rsR 'Output footer Print #lngFN blah blah Close #lngFN On Thu, 10 May 2007 10:35:01 -0700, efandango wrote: I have an address query which ouputs a single field to text strings for Google Earth .kml file format parameters. The problem is that the .kml file requires a header and footer text to be inserted. Does anyone know how I can pre-insert the Header and Footer into a standard text file, and then save it with a '.kml' extension, for example 'Addresses.kml' This is the Header: ?xml version="1.0" encoding="UTF-8"? kml xmlns="http://earth.google.com/kml/2.0" Document nameAddress List/name Folder nameLocations/name open1/open |
#22
|
|||
|
|||
Creating a custom text export file (inc. header & footer) from
Douglas,
Yes, if i run it manually, it prompts the user for the Run No. Your code?, do i paste it in, and then where you continue with 'etc', paste in that part from my exisitng code, changing your 'Rs' references to John's 'rsR' references? "Douglas J. Steele" wrote: Not certain I understand what you mean "a criteria control wth the criteria 'Run No' based on a field called [Run_No]" If you run the query manually, does it prompt the user to enter the criteria? Dim db As DAO.Database Dim qdf As DAO.QueryDef Dim rs As DAO.Recordset Dim strRun_No As String strRun_No = InputBox("Enter the Run No") If Len(strRun_No) 0 Then Set db = CurrentDb() Set qdf = db.QueryDefs("Generate_KML") qdf.Parameters("Run_No") = [Run_No] ' or qdf![Run_No] = [Run_No] Set rs = qdf.OpenRecordset(dbOpenSnapshot) ' etc. End If -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no private e-mails, please) "efandango" wrote in message ... Douglas, thanks for that article, I understand what it is implying, but don't really get how to implement the suggestions. It seems to me that it relates more to forms controls than underlying query criteria. I tried this: (you'll probably smile at my naivety...), but i can't figure out what or even how to contextualise the code to reference my criteria field: Set rsR = CurrentDb.OpenRecordset("Generate_KML", dbOpenSnapshot) qdf![Generate_KML.Run_No] = [Run No] but it didn't work. Unlike that articles suggestion, I am not accessing a form's control, but a criteria control with the criteria 'Run No' based on a field called [Run_No] "Douglas J. Steele" wrote: http://www.mvps.org/access/queries/qry0013.htm -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no private e-mails, please) "efandango" wrote in message ... Douglas, John. Now that I have the code working, how can I adapt it to take a criteria from the underlying query. Each set of addresses (16 addresses per set) within the query is based on a Main Record field called [Run_No]. But when I try to use this criteria in the query and then run your code, I get the following error message: Run-time error '3061'; Too few parameters. Expected 1. and the VBA throws a highlighted yellow error: Set rsR = CurrentDb.OpenRecordset("Generate_KML", dbOpenSnapshot) "Douglas J. Steele" wrote: Print #lngFN, "?xml version=""1.0"" encoding=""UTF-8""?" Is the expected string supposed to have two double quotes on either side of UTF-8? If so, you need Print #lngFN, "?xml version=""1.0"" encoding=""""UTF-8""""?" (The rule is everytime you want a quote to appear inside a quoted string, you need to double the quotes.) -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no private e-mails, please) "efandango" wrote in message ... Douglas, Can you help advise on this VBA problem please? When I paste or type this line: Print #lngFN, "?xml version="1.0" encoding=""UTF-8""?" I get Print #lngFN, "?xml version="; 1#; " encoding=""UTF-8""?" the 1.0 becomes 1# I can't seem to get the VBA window to accept John's code, weird or some kind of switch that is turned off? "Douglas J. Steele" wrote: Replace Set rsR = CurrentDb.Open("Generate_KML") Print #lngFN, rsR.Fields("KML_Address") Close rsR with Set rsR = CurrentDb.Open("Generate_KML") Do Until rsR.EOF = True Print #lngFN, rsR.Fields("KML_Address") rsR.MoveNext Loop Close rsR -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no private e-mails, please) "efandango" wrote in message ... help?... "efandango" wrote: Douglas/John, that did the trick... but I have a secondary problem (that i think is of my making...). The .kml file only contains the first address in the query, and I think it's because of my badly worded sentence 'I have an address query which ouputs a single field to text strings for Google Earth .kml file format parameters.' in my opening post. What I really meant was it is a single field (among other fields in the query), but that it contains multiple records/data. eg: Main St, London, W1 South St, London, W2 East St, London, SE1 Is it possible to get the routine to print All the data for that field to the kml file? "Douglas J. Steele" wrote: That's supposed to be rsR.Close (the Close #lngFN is correct though) -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no private e-mails, please) "efandango" wrote in message ... John, I now get this error in the line: Close rsR: (highlighting the word 'Close') Compile error: Type mismatch: "John Nurick" wrote: My fault - though I warned you it was air code. Should be CurrentDB.OpenRecordset("Generate_KML", dbOpenSnapshot) not CurrentDB.Open("Generate_KML") On Thu, 10 May 2007 16:41:00 -0700, efandango wrote: John, Just ignore the previous two posts from me. This is how far i have got in adapting your code Private Sub Test_Click() Dim rsR As DAO.Recordset Dim strLine As String Dim lngFN As Long 'Create empty text file lngFN = FreeFile() Open "W:\Folder\Addresses.kml" For Output As #lngFN 'Output header 'NB: need to double quotes in literal strings Print #lngFN, "?xml version="; 1#; " encoding=""UTF-8""?" Print #lngFN, "kml xmlns=""http://earth.google.com/kml/2.0""" Print #lngFN, "Document" Print #lngFN, "nameAddress List/name" Print #lngFN, "Folder" Print #lngFN, "nameLocations/name" Print #lngFN, "open1/open" '... 'Output address Set rsR = CurrentDb.Open("Generate_KML") Print #lngFN, rsR.Fields("KML_Address") Close rsR 'Output footer Print #lngFN, "/Folder" Print #lngFN, "/Document" Print #lngFN, "/kml" '... Close #lngFN End Sub But i get an error message: 'Method or Data Member not found' on the word 'Open' in the following line: Set rsR = CurrentDb.Open("Generate_KML") It suggests that something is mispelled or wrong reference, so I was worried that the query it was calling was two seperate words, so I changed it to |
#23
|
|||
|
|||
Creating a custom text export file (inc. header & footer) from a q
Douglas,
I pasted your code (with subtle changes to the 'rs' references...: Private Sub Test_Click() Dim db As DAO.Database Dim qdf As DAO.QueryDef Dim rs As DAO.Recordset Dim strRun_No As String strRun_No = InputBox("Enter the Run No") If Len(strRun_No) 0 Then Set db = CurrentDb() Set qdf = db.QueryDefs("Generate_KML") qdf.Parameters("Run_No") = [Run_No] ' or qdf![Run_No] = [Run_No] Set rs = qdf.OpenRecordset(dbOpenSnapshot) Do Until rs.EOF = True Print #lngFN, rs.Fields("KML_Address") rs.MoveNext Loop rs.Close 'Output footer Print #lngFN, "/Folder" Print #lngFN, "/Document" Print #lngFN, "/kml" '... Close #lngFN End If End Sub When I run it, the dialog box for the user Run No pops up, but then I hit OK, i get this error message: Run-time error '3265': Item not found in this collection. and the vba highlights this line in the editor: qdf.Parameters("Run_No") = [Run_No] ' or qdf![Run_No] = [Run_No] I tried that line to just say: qdf![Run_No] = [Run_No] but still the same error message. "efandango" wrote: I have an address query which ouputs a single field to text strings for Google Earth .kml file format parameters. The problem is that the .kml file requires a header and footer text to be inserted. Does anyone know how I can pre-insert the Header and Footer into a standard text file, and then save it with a ‘.kml’ extension, for example ‘Addresses.kml’ This is the Header: ?xml version="1.0" encoding="UTF-8"? kml xmlns="http://earth.google.com/kml/2.0" Document nameAddress List/name Folder nameLocations/name open1/open Output Field: [kml Address] This is the Footer: /Folder /Document /kml |
#24
|
|||
|
|||
Creating a custom text export file (inc. header & footer) from a q
yo whats craccin you will get every thing together
"efandango" wrote in message ... Douglas, I pasted your code (with subtle changes to the 'rs' references...: Private Sub Test_Click() Dim db As DAO.Database Dim qdf As DAO.QueryDef Dim rs As DAO.Recordset Dim strRun_No As String strRun_No = InputBox("Enter the Run No") If Len(strRun_No) 0 Then Set db = CurrentDb() Set qdf = db.QueryDefs("Generate_KML") qdf.Parameters("Run_No") = [Run_No] ' or qdf![Run_No] = [Run_No] Set rs = qdf.OpenRecordset(dbOpenSnapshot) Do Until rs.EOF = True Print #lngFN, rs.Fields("KML_Address") rs.MoveNext Loop rs.Close 'Output footer Print #lngFN, "/Folder" Print #lngFN, "/Document" Print #lngFN, "/kml" '... Close #lngFN End If End Sub When I run it, the dialog box for the user Run No pops up, but then I hit OK, i get this error message: Run-time error '3265': Item not found in this collection. and the vba highlights this line in the editor: qdf.Parameters("Run_No") = [Run_No] ' or qdf![Run_No] = [Run_No] I tried that line to just say: qdf![Run_No] = [Run_No] but still the same error message. "efandango" wrote: I have an address query which ouputs a single field to text strings for Google Earth .kml file format parameters. The problem is that the .kml file requires a header and footer text to be inserted. Does anyone know how I can pre-insert the Header and Footer into a standard text file, and then save it with a '.kml' extension, for example 'Addresses.kml' This is the Header: ?xml version="1.0" encoding="UTF-8"? kml xmlns="http://earth.google.com/kml/2.0" Document nameAddress List/name Folder nameLocations/name open1/open Output Field: [kml Address] This is the Footer: /Folder /Document /kml |
#25
|
|||
|
|||
Creating a custom text export file (inc. header & footer) from a q
Sorry, my fault. I switched what I was going to tell you part way through,
and missed a correction. It should have been: qdf.Parameters("Run_No") = strRun_No (or you could use qdf![Run_No] = strRun_No) However, given the error you're getting, your parameter obviously isn't named "Run_No". What's the actual SQL of your query? -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no private e-mails, please) "efandango" wrote in message ... Douglas, I pasted your code (with subtle changes to the 'rs' references...: Private Sub Test_Click() Dim db As DAO.Database Dim qdf As DAO.QueryDef Dim rs As DAO.Recordset Dim strRun_No As String strRun_No = InputBox("Enter the Run No") If Len(strRun_No) 0 Then Set db = CurrentDb() Set qdf = db.QueryDefs("Generate_KML") qdf.Parameters("Run_No") = [Run_No] ' or qdf![Run_No] = [Run_No] Set rs = qdf.OpenRecordset(dbOpenSnapshot) Do Until rs.EOF = True Print #lngFN, rs.Fields("KML_Address") rs.MoveNext Loop rs.Close 'Output footer Print #lngFN, "/Folder" Print #lngFN, "/Document" Print #lngFN, "/kml" '... Close #lngFN End If End Sub When I run it, the dialog box for the user Run No pops up, but then I hit OK, i get this error message: Run-time error '3265': Item not found in this collection. and the vba highlights this line in the editor: qdf.Parameters("Run_No") = [Run_No] ' or qdf![Run_No] = [Run_No] I tried that line to just say: qdf![Run_No] = [Run_No] but still the same error message. "efandango" wrote: I have an address query which ouputs a single field to text strings for Google Earth .kml file format parameters. The problem is that the .kml file requires a header and footer text to be inserted. Does anyone know how I can pre-insert the Header and Footer into a standard text file, and then save it with a '.kml' extension, for example 'Addresses.kml' This is the Header: ?xml version="1.0" encoding="UTF-8"? kml xmlns="http://earth.google.com/kml/2.0" Document nameAddress List/name Folder nameLocations/name open1/open Output Field: [kml Address] This is the Footer: /Folder /Document /kml |
#26
|
|||
|
|||
Creating a custom text export file (inc. header & footer) from
Douglas,
Here is my sql: (I am using 'Run No' without the underscore for the field [Run_No] with the underscore. SELECT [Points with Run No].Run_No, [Points with Run No].Run_Point_Address_A AS Address, [Points with Run No].Run_Point_Venue_A AS Venue, "Placemarkdescription" & [Venue] & "/descriptionaddress" & [address] & ", London, UK /addressname" & [address] & "/name/Placemark" AS KML_Address FROM [Points with Run No] WHERE ((([Points with Run No].Run_No)=[Run No])); "Douglas J. Steele" wrote: Sorry, my fault. I switched what I was going to tell you part way through, and missed a correction. It should have been: qdf.Parameters("Run_No") = strRun_No (or you could use qdf![Run_No] = strRun_No) However, given the error you're getting, your parameter obviously isn't named "Run_No". What's the actual SQL of your query? -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no private e-mails, please) "efandango" wrote in message ... Douglas, I pasted your code (with subtle changes to the 'rs' references...: Private Sub Test_Click() Dim db As DAO.Database Dim qdf As DAO.QueryDef Dim rs As DAO.Recordset Dim strRun_No As String strRun_No = InputBox("Enter the Run No") If Len(strRun_No) 0 Then Set db = CurrentDb() Set qdf = db.QueryDefs("Generate_KML") qdf.Parameters("Run_No") = [Run_No] ' or qdf![Run_No] = [Run_No] Set rs = qdf.OpenRecordset(dbOpenSnapshot) Do Until rs.EOF = True Print #lngFN, rs.Fields("KML_Address") rs.MoveNext Loop rs.Close 'Output footer Print #lngFN, "/Folder" Print #lngFN, "/Document" Print #lngFN, "/kml" '... Close #lngFN End If End Sub When I run it, the dialog box for the user Run No pops up, but then I hit OK, i get this error message: Run-time error '3265': Item not found in this collection. and the vba highlights this line in the editor: qdf.Parameters("Run_No") = [Run_No] ' or qdf![Run_No] = [Run_No] I tried that line to just say: qdf![Run_No] = [Run_No] but still the same error message. "efandango" wrote: I have an address query which ouputs a single field to text strings for Google Earth .kml file format parameters. The problem is that the .kml file requires a header and footer text to be inserted. Does anyone know how I can pre-insert the Header and Footer into a standard text file, and then save it with a '.kml' extension, for example 'Addresses.kml' This is the Header: ?xml version="1.0" encoding="UTF-8"? kml xmlns="http://earth.google.com/kml/2.0" Document nameAddress List/name Folder nameLocations/name open1/open Output Field: [kml Address] This is the Footer: /Folder /Document /kml |
#27
|
|||
|
|||
Creating a custom text export file (inc. header & footer) from
Douglas,
I tried both lines (seperately), but neither worked. they both throw the following error: 'Item not found in this collection' I am using 'Run No' as my parameter name without the underscore for the actual field, [Run_No] with the underscore. Here is my SQL (with the parameter request) SELECT [Points with Run No].Run_No, [Points with Run No].Run_Point_Address_A AS Address, [Points with Run No].Run_Point_Venue_A AS Venue, "Placemarkdescription" & [Venue] & "/descriptionaddress" & [address] & ", London, UK /addressname" & [address] & "/name/Placemark" AS KML_Address FROM [Points with Run No] WHERE ((([Points with Run No].Run_No)=[Run No])); "Douglas J. Steele" wrote: Sorry, my fault. I switched what I was going to tell you part way through, and missed a correction. It should have been: qdf.Parameters("Run_No") = strRun_No (or you could use qdf![Run_No] = strRun_No) However, given the error you're getting, your parameter obviously isn't named "Run_No". What's the actual SQL of your query? -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no private e-mails, please) "efandango" wrote in message ... Douglas, I pasted your code (with subtle changes to the 'rs' references...: Private Sub Test_Click() Dim db As DAO.Database Dim qdf As DAO.QueryDef Dim rs As DAO.Recordset Dim strRun_No As String strRun_No = InputBox("Enter the Run No") If Len(strRun_No) 0 Then Set db = CurrentDb() Set qdf = db.QueryDefs("Generate_KML") qdf.Parameters("Run_No") = [Run_No] ' or qdf![Run_No] = [Run_No] Set rs = qdf.OpenRecordset(dbOpenSnapshot) Do Until rs.EOF = True Print #lngFN, rs.Fields("KML_Address") rs.MoveNext Loop rs.Close 'Output footer Print #lngFN, "/Folder" Print #lngFN, "/Document" Print #lngFN, "/kml" '... Close #lngFN End If End Sub When I run it, the dialog box for the user Run No pops up, but then I hit OK, i get this error message: Run-time error '3265': Item not found in this collection. and the vba highlights this line in the editor: qdf.Parameters("Run_No") = [Run_No] ' or qdf![Run_No] = [Run_No] I tried that line to just say: qdf![Run_No] = [Run_No] but still the same error message. "efandango" wrote: I have an address query which ouputs a single field to text strings for Google Earth .kml file format parameters. The problem is that the .kml file requires a header and footer text to be inserted. Does anyone know how I can pre-insert the Header and Footer into a standard text file, and then save it with a '.kml' extension, for example 'Addresses.kml' This is the Header: ?xml version="1.0" encoding="UTF-8"? kml xmlns="http://earth.google.com/kml/2.0" Document nameAddress List/name Folder nameLocations/name open1/open Output Field: [kml Address] This is the Footer: /Folder /Document /kml |
#28
|
|||
|
|||
Creating a custom text export file (inc. header & footer) from
Since your parameter doesn't have an underscore in it, try:
qdf.Parameters("Run No") = strRun_No or qdf![Run No] = strRun _No -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no private e-mails, please) "efandango" wrote in message ... Douglas, I tried both lines (seperately), but neither worked. they both throw the following error: 'Item not found in this collection' I am using 'Run No' as my parameter name without the underscore for the actual field, [Run_No] with the underscore. Here is my SQL (with the parameter request) SELECT [Points with Run No].Run_No, [Points with Run No].Run_Point_Address_A AS Address, [Points with Run No].Run_Point_Venue_A AS Venue, "Placemarkdescription" & [Venue] & "/descriptionaddress" & [address] & ", London, UK /addressname" & [address] & "/name/Placemark" AS KML_Address FROM [Points with Run No] WHERE ((([Points with Run No].Run_No)=[Run No])); "Douglas J. Steele" wrote: Sorry, my fault. I switched what I was going to tell you part way through, and missed a correction. It should have been: qdf.Parameters("Run_No") = strRun_No (or you could use qdf![Run_No] = strRun_No) However, given the error you're getting, your parameter obviously isn't named "Run_No". What's the actual SQL of your query? -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no private e-mails, please) "efandango" wrote in message ... Douglas, I pasted your code (with subtle changes to the 'rs' references...: Private Sub Test_Click() Dim db As DAO.Database Dim qdf As DAO.QueryDef Dim rs As DAO.Recordset Dim strRun_No As String strRun_No = InputBox("Enter the Run No") If Len(strRun_No) 0 Then Set db = CurrentDb() Set qdf = db.QueryDefs("Generate_KML") qdf.Parameters("Run_No") = [Run_No] ' or qdf![Run_No] = [Run_No] Set rs = qdf.OpenRecordset(dbOpenSnapshot) Do Until rs.EOF = True Print #lngFN, rs.Fields("KML_Address") rs.MoveNext Loop rs.Close 'Output footer Print #lngFN, "/Folder" Print #lngFN, "/Document" Print #lngFN, "/kml" '... Close #lngFN End If End Sub When I run it, the dialog box for the user Run No pops up, but then I hit OK, i get this error message: Run-time error '3265': Item not found in this collection. and the vba highlights this line in the editor: qdf.Parameters("Run_No") = [Run_No] ' or qdf![Run_No] = [Run_No] I tried that line to just say: qdf![Run_No] = [Run_No] but still the same error message. "efandango" wrote: I have an address query which ouputs a single field to text strings for Google Earth .kml file format parameters. The problem is that the .kml file requires a header and footer text to be inserted. Does anyone know how I can pre-insert the Header and Footer into a standard text file, and then save it with a '.kml' extension, for example 'Addresses.kml' This is the Header: ?xml version="1.0" encoding="UTF-8"? kml xmlns="http://earth.google.com/kml/2.0" Document nameAddress List/name Folder nameLocations/name open1/open Output Field: [kml Address] This is the Footer: /Folder /Document /kml |
#29
|
|||
|
|||
Creating a custom text export file (inc. header & footer) from
Douglas,
this line: qdf.Parameters("Run No") = strRun_No comes back with 'Bad file name or number (runtime error 52) your other line 'qdf![Run No] = strRun _No' redlines in the VBA window "Douglas J. Steele" wrote: Since your parameter doesn't have an underscore in it, try: qdf.Parameters("Run No") = strRun_No or qdf![Run No] = strRun _No -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no private e-mails, please) "efandango" wrote in message ... Douglas, I tried both lines (seperately), but neither worked. they both throw the following error: 'Item not found in this collection' I am using 'Run No' as my parameter name without the underscore for the actual field, [Run_No] with the underscore. Here is my SQL (with the parameter request) SELECT [Points with Run No].Run_No, [Points with Run No].Run_Point_Address_A AS Address, [Points with Run No].Run_Point_Venue_A AS Venue, "Placemarkdescription" & [Venue] & "/descriptionaddress" & [address] & ", London, UK /addressname" & [address] & "/name/Placemark" AS KML_Address FROM [Points with Run No] WHERE ((([Points with Run No].Run_No)=[Run No])); "Douglas J. Steele" wrote: Sorry, my fault. I switched what I was going to tell you part way through, and missed a correction. It should have been: qdf.Parameters("Run_No") = strRun_No (or you could use qdf![Run_No] = strRun_No) However, given the error you're getting, your parameter obviously isn't named "Run_No". What's the actual SQL of your query? -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no private e-mails, please) "efandango" wrote in message ... Douglas, I pasted your code (with subtle changes to the 'rs' references...: Private Sub Test_Click() Dim db As DAO.Database Dim qdf As DAO.QueryDef Dim rs As DAO.Recordset Dim strRun_No As String strRun_No = InputBox("Enter the Run No") If Len(strRun_No) 0 Then Set db = CurrentDb() Set qdf = db.QueryDefs("Generate_KML") qdf.Parameters("Run_No") = [Run_No] ' or qdf![Run_No] = [Run_No] Set rs = qdf.OpenRecordset(dbOpenSnapshot) Do Until rs.EOF = True Print #lngFN, rs.Fields("KML_Address") rs.MoveNext Loop rs.Close 'Output footer Print #lngFN, "/Folder" Print #lngFN, "/Document" Print #lngFN, "/kml" '... Close #lngFN End If End Sub When I run it, the dialog box for the user Run No pops up, but then I hit OK, i get this error message: Run-time error '3265': Item not found in this collection. and the vba highlights this line in the editor: qdf.Parameters("Run_No") = [Run_No] ' or qdf![Run_No] = [Run_No] I tried that line to just say: qdf![Run_No] = [Run_No] but still the same error message. "efandango" wrote: I have an address query which ouputs a single field to text strings for Google Earth .kml file format parameters. The problem is that the .kml file requires a header and footer text to be inserted. Does anyone know how I can pre-insert the Header and Footer into a standard text file, and then save it with a '.kml' extension, for example 'Addresses.kml' This is the Header: ?xml version="1.0" encoding="UTF-8"? kml xmlns="http://earth.google.com/kml/2.0" Document nameAddress List/name Folder nameLocations/name open1/open Output Field: [kml Address] This is the Footer: /Folder /Document /kml |
#30
|
|||
|
|||
Creating a custom text export file (inc. header & footer) from
Douglas
I noticed your 2nd option 'qdf![Run No] = strRun _No' had a space before the underscore '_No' but it still comes back with the same error line ('Bad file name or number (runtime error 52) as your first option Here is my Current Code: Private Sub Test_Click() Dim db As DAO.Database Dim qdf As DAO.QueryDef Dim rs As DAO.Recordset Dim strRun_No As String strRun_No = InputBox("Enter the Run No") If Len(strRun_No) 0 Then Set db = CurrentDb() Set qdf = db.QueryDefs("Generate_KML") qdf.Parameters("Run No") = strRun_No qdf![Run No] = strRun_No Set rs = qdf.OpenRecordset(dbOpenSnapshot) Do Until rs.EOF = True Print #lngFN, rs.Fields("KML_Address") rs.MoveNext Loop rs.Close 'Output footer Print #lngFN, "/Folder" Print #lngFN, "/Document" Print #lngFN, "/kml" '... Close #lngFN End If End Sub "efandango" wrote: Douglas, this line: qdf.Parameters("Run No") = strRun_No comes back with 'Bad file name or number (runtime error 52) your other line 'qdf![Run No] = strRun _No' redlines in the VBA window "Douglas J. Steele" wrote: Since your parameter doesn't have an underscore in it, try: qdf.Parameters("Run No") = strRun_No or qdf![Run No] = strRun _No -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no private e-mails, please) "efandango" wrote in message ... Douglas, I tried both lines (seperately), but neither worked. they both throw the following error: 'Item not found in this collection' I am using 'Run No' as my parameter name without the underscore for the actual field, [Run_No] with the underscore. Here is my SQL (with the parameter request) SELECT [Points with Run No].Run_No, [Points with Run No].Run_Point_Address_A AS Address, [Points with Run No].Run_Point_Venue_A AS Venue, "Placemarkdescription" & [Venue] & "/descriptionaddress" & [address] & ", London, UK /addressname" & [address] & "/name/Placemark" AS KML_Address FROM [Points with Run No] WHERE ((([Points with Run No].Run_No)=[Run No])); "Douglas J. Steele" wrote: Sorry, my fault. I switched what I was going to tell you part way through, and missed a correction. It should have been: qdf.Parameters("Run_No") = strRun_No (or you could use qdf![Run_No] = strRun_No) However, given the error you're getting, your parameter obviously isn't named "Run_No". What's the actual SQL of your query? -- Doug Steele, Microsoft Access MVP http://I.Am/DougSteele (no private e-mails, please) "efandango" wrote in message ... Douglas, I pasted your code (with subtle changes to the 'rs' references...: Private Sub Test_Click() Dim db As DAO.Database Dim qdf As DAO.QueryDef Dim rs As DAO.Recordset Dim strRun_No As String strRun_No = InputBox("Enter the Run No") If Len(strRun_No) 0 Then Set db = CurrentDb() Set qdf = db.QueryDefs("Generate_KML") qdf.Parameters("Run_No") = [Run_No] ' or qdf![Run_No] = [Run_No] Set rs = qdf.OpenRecordset(dbOpenSnapshot) Do Until rs.EOF = True Print #lngFN, rs.Fields("KML_Address") rs.MoveNext Loop rs.Close 'Output footer Print #lngFN, "/Folder" Print #lngFN, "/Document" Print #lngFN, "/kml" '... Close #lngFN End If End Sub When I run it, the dialog box for the user Run No pops up, but then I hit OK, i get this error message: Run-time error '3265': Item not found in this collection. and the vba highlights this line in the editor: qdf.Parameters("Run_No") = [Run_No] ' or qdf![Run_No] = [Run_No] I tried that line to just say: qdf![Run_No] = [Run_No] but still the same error message. "efandango" wrote: I have an address query which ouputs a single field to text strings for Google Earth .kml file format parameters. The problem is that the .kml file requires a header and footer text to be inserted. Does anyone know how I can pre-insert the Header and Footer into a standard text file, and then save it with a '.kml' extension, for example 'Addresses.kml' This is the Header: ?xml version="1.0" encoding="UTF-8"? kml xmlns="http://earth.google.com/kml/2.0" Document nameAddress List/name Folder nameLocations/name open1/open Output Field: [kml Address] This is the Footer: /Folder /Document /kml |
Thread Tools | |
Display Modes | |
|
|