from combo box data - > Open website with username and password | Member | | Join Date: Aug 2008
Posts: 67
| | |
I have a form with a combo box called "cmbWebsites".
The combo box row source comes from a select query that returns rows:
0.WebsiteID
1.Website Name
2.Website URL
3.Username
4.Password
Only "Website Name" appears in the combo box. The other columns are set to zero length.
When the user selects a website, the AfterUpdate event will trigger code to build a string that contains the URL, Username and Password of the selected website, and runs it through the FollowHyperlink method.
The only thing I don't know how to do is format the hyperlink so the websites will accept the username and password and automatically get me into the site; like "Roboform".
Even though this isn't a pure MS Access question, I can't imagine that other Access developers haven't done something similar.
Does anyone know how to format a URL with Username and Password, so the FollowHyperlink method automatically gets you into the site?
Thanks,
Adam
| |
best answer - posted by mshmyob | Quote:
Originally Posted by AdamOnAccess ok, I got pretty far with it but than got hung up at the last moment. Here's what is happening... - With Me!cmbWebSiteID
-
strURL = .Column(1)
-
strUNtag = .Column(3)
-
strUNtag = Chr(34) & strUNtag & Chr(34)
-
strPWtag = .Column(4)
-
strPWtag = Chr(34) & strPWtag & Chr(34)
-
strMyUN = .Column(6)
-
strMyPW = .Column(7)
-
strSubmitButton = .Column(5)
-
strSubmitButton = Chr(34) & strSubmitButton & Chr(34)
-
End With
-
-
-
Dim webBrowser As Object
-
Set webBrowser = CreateObject("InternetExplorer.Application")
-
-
With webBrowser
-
.Navigate strURL
-
.Visible = True
-
' loop until the page has finished loading
-
Do While webBrowser.readyState <> 4 Or webBrowser.Busy
-
DoEvents
-
Loop
-
' username and password are the default element names - if they are different you need to figure them out and change accordingly
-
.Document.All.Item(strUNtag).Value = strMyUN
-
.Document.All.Item(strPWtag).Value = strMyPW
-
.Document.All.Item(strSubmitButton).Click
-
End With
-
When I run the code, I get this error message...
"Method 'Item' of Object 'NameOfForm' Failed"
The error occurs on this line:
.Document.All.Item(strUNtag).Value = strMyUN
if I remove the variable and run it as a fixed string like this...
.Document.All.Item("Nick").Value = strMyUN
... with "Nick" being the actual name of the Username field on the HTML page, the code works perfectly.
Does anyone know how I can get it to run with the variable?
Thanks,
Adam Just change your declaration for your elements (strUNtag, etc.) like so:
dim strUNtag
Don't try to add quotes or anything. Do not declare it as string or anything. Or leave out the declarations completeley and it will work.
cheers,
|  | Expert | | Join Date: Jan 2008 Location: witness protection
Posts: 618
| | | re: from combo box data - > Open website with username and password Quote:
Originally Posted by AdamOnAccess I have a form with a combo box called "cmbWebsites".
The combo box row source comes from a select query that returns rows:
0.WebsiteID
1.Website Name
2.Website URL
3.Username
4.Password
Only "Website Name" appears in the combo box. The other columns are set to zero length.
When the user selects a website, the AfterUpdate event will trigger code to build a string that contains the URL, Username and Password of the selected website, and runs it through the FollowHyperlink method.
The only thing I don't know how to do is format the hyperlink so the websites will accept the username and password and automatically get me into the site; like "Roboform".
Even though this isn't a pure MS Access question, I can't imagine that other Access developers haven't done something similar.
Does anyone know how to format a URL with Username and Password, so the FollowHyperlink method automatically gets you into the site?
Thanks,
Adam I guess that would depend on the format that the Web site requires. For instance I have a map button for my addresses and I open a google map to display my contacts driving directions. The string I send to google maps is based on their format.
I also retrieve stock and index indormation from numerous sites but they require me to pass a string in a certain syntax.
All you need to figure out is what syntax the site expects and do something like so: -
Dim strURL As String
-
strURL = "http://maps.google.com/maps?q=" & txtAddrStreet & ",+" & txtAddrCity & ",+" & txtAddrProv & "+" & txtAddrPostal & "+" & txtAddrCountry
-
Application.FollowHyperlink strURL
-
cheers,
| | Member | | Join Date: Aug 2008
Posts: 67
| | | re: from combo box data - > Open website with username and password
mshmyob,
Thanks for the reply. I know I need the format, but I was thinking that perhaps there was some kind of "standard" for usernames and passwords. Are you familiar with the program, "Roboform". It maintains usernames and passwords for any site you choose. Just click a button, and it stores the URL, username and password. When you want to return to the site, you just click it and in you go. How does Roboform manage to send usernames and passwords to ANY website without first knowing the format?
There must be some standard way to do this. Any one know how?
-Adam
|  | Administrator | | Join Date: Oct 2006 Location: London - UK
Posts: 15,722
| | | re: from combo box data - > Open website with username and password
I'm not familiar with RoboForm Adam, but from your own description, it seems that it holds it per site. I expect it determines the format from usage somehow (and stores it with your username and password in its database). I certainly think (no great expert at this to be sure so don't take as gospel) that Mshmyob is on the right lines with this though.
|  | Expert | | Join Date: Jan 2008 Location: witness protection
Posts: 618
| | | re: from combo box data - > Open website with username and password
I will try and look into it this weekend. I have done a little research and thrown something together but I am having a few errors. Give me a couple of days and I will see what I can come up with if anything.
cheers,
|  | Expert | | Join Date: Apr 2006 Location: Philadelphia
Posts: 5,214
| | | re: from combo box data - > Open website with username and password
I'm not sure of the specific syntax, but you may be able to use the ExtraInfo Parameter of the FollowHyperlink Method to accomplish this.
|  | Expert | | Join Date: Apr 2006 Location: Philadelphia
Posts: 5,214
| | | re: from combo box data - > Open website with username and password Quote:
Originally Posted by AdamOnAccess I have a form with a combo box called "cmbWebsites".
The combo box row source comes from a select query that returns rows:
0.WebsiteID
1.Website Name
2.Website URL
3.Username
4.Password
Only "Website Name" appears in the combo box. The other columns are set to zero length.
When the user selects a website, the AfterUpdate event will trigger code to build a string that contains the URL, Username and Password of the selected website, and runs it through the FollowHyperlink method.
The only thing I don't know how to do is format the hyperlink so the websites will accept the username and password and automatically get me into the site; like "Roboform".
Even though this isn't a pure MS Access question, I can't imagine that other Access developers haven't done something similar.
Does anyone know how to format a URL with Username and Password, so the FollowHyperlink method automatically gets you into the site?
Thanks,
Adam Just retrieve the Username and Password Control Names as well as the Form Name from the Web Site (View Source), and you should be OK: - Dim objIE As Object
-
Set objIE = CreateObject("InternetExplorer.Application")
-
-
With objIE
-
.Visible = True
-
.Navigate "<Your Web Site>"
-
-
Do While .ReadyState <> 4
-
DoEvents
-
Loop
-
-
With .Document.Forms(0)
-
.UserName.Value = "your login" 'Retrieve Control Name from Web Page
-
.Password.Value = "your password" 'Retrieve Control Name from Web Page
-
.Document.loginForm.submit 'Retrieve Form Name from Web Page
-
End With
-
End With
|  | Expert | | Join Date: Apr 2006 Location: Philadelphia
Posts: 5,214
| | | re: from combo box data - > Open website with username and password
I've developed some code that is slightly convoluted, does not require advance knowledge of any Control/Form Names, and actually worked very well during many trials. It involves the use of the FollowHyperlink Method, SendKeys, and the Sleep() API Function. You can judge for yourself: - Declare the API Function:
- Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
- Execute the following code block:
-
Const conWEB_ADDRESS As String = "<YaDa, YaDa, YaDa>"
-
Const conUSERNAME As String = "<more YaDa, YaDa>"
-
Const conPASSWORD As String = "<still more YaDa, YaDa>"
-
-
Application.FollowHyperlink Address:=conWEB_ADDRESS
-
-
Sleep (3000) 'Delay 3 seconds
-
SendKeys conUSERNAME, True 'Plug in User Name
-
-
Sleep (1000) 'Delay 1 second
-
SendKeys "{TAB}", True 'Send the TAB Keystroke
-
-
Sleep (1000) 'Delay 1 second
-
SendKeys conPASSWORD, True 'Plug in Password
-
-
Sleep (1000) 'Delay 1 second
-
SendKeys "{TAB}", True 'Send the TAB Keystroke
-
-
Sleep (1000) 'Delay 1 second
-
SendKeys "{ENTER}" 'Send the ENTER Keystroke
NOTE: You can experiment with the Delays for better performance.
|  | Expert | | Join Date: Jan 2008 Location: witness protection
Posts: 618
| | | re: from combo box data - > Open website with username and password
Here is a simple way of submitting your username and password to various sites. -
' you need a reference to the Microsoft HTML Object Library
-
Dim webBrowser As Object
-
Set webBrowser = CreateObject("InternetExplorer.Application")
-
-
With webBrowser
-
.Navigate "put your login URL here"
-
.Visible = True
-
' loop until the page has finished loading
-
Do While webBrowser.readyState <> 4
-
DoEvents
-
Loop
-
' username and password are the default element names - if they are different you need to figure them out and change accordingly
-
.Document.all.Item("USERNAME").Value = "your username"
-
.Document.all.Item("PASSWORD").Value = "your password"
-
End With
-
cheers,
| | Member | | Join Date: Aug 2008
Posts: 67
| | | re: from combo box data - > Open website with username and password
Mshmyob, ADezii, NeoPa,
Thanks all! Lot's of great stuff to work with here. My biggest problem now is deciding which solution is best? It seems the real tricky part here is capturing the object names for username and password in the html form. I suppose I could create fields in the database to store that info, use view page to capture the actual names, and then slug them in when I run the code.
Not the kind of thing I'd expect most users to pull off. I could set "Username" and "Password" as default field names and that will probably cover most of it.
Thanks again!
-Adam
| | Member | | Join Date: Aug 2008
Posts: 67
| | | re: from combo box data - > Open website with username and password
ok, I got pretty far with it but than got hung up at the last moment. Here's what is happening... - With Me!cmbWebSiteID
-
strURL = .Column(1)
-
strUNtag = .Column(3)
-
strUNtag = Chr(34) & strUNtag & Chr(34)
-
strPWtag = .Column(4)
-
strPWtag = Chr(34) & strPWtag & Chr(34)
-
strMyUN = .Column(6)
-
strMyPW = .Column(7)
-
strSubmitButton = .Column(5)
-
strSubmitButton = Chr(34) & strSubmitButton & Chr(34)
-
End With
-
-
-
Dim webBrowser As Object
-
Set webBrowser = CreateObject("InternetExplorer.Application")
-
-
With webBrowser
-
.Navigate strURL
-
.Visible = True
-
' loop until the page has finished loading
-
Do While webBrowser.readyState <> 4 Or webBrowser.Busy
-
DoEvents
-
Loop
-
' username and password are the default element names - if they are different you need to figure them out and change accordingly
-
.Document.All.Item(strUNtag).Value = strMyUN
-
.Document.All.Item(strPWtag).Value = strMyPW
-
.Document.All.Item(strSubmitButton).Click
-
End With
-
When I run the code, I get this error message...
"Method 'Item' of Object 'NameOfForm' Failed"
The error occurs on this line:
.Document.All.Item(strUNtag).Value = strMyUN
if I remove the variable and run it as a fixed string like this...
.Document.All.Item("Nick").Value = strMyUN
... with "Nick" being the actual name of the Username field on the HTML page, the code works perfectly.
Does anyone know how I can get it to run with the variable?
Thanks,
Adam
|  | Expert | | Join Date: Jan 2008 Location: witness protection
Posts: 618
| | | re: from combo box data - > Open website with username and password Quote:
Originally Posted by AdamOnAccess ok, I got pretty far with it but than got hung up at the last moment. Here's what is happening... - With Me!cmbWebSiteID
-
strURL = .Column(1)
-
strUNtag = .Column(3)
-
strUNtag = Chr(34) & strUNtag & Chr(34)
-
strPWtag = .Column(4)
-
strPWtag = Chr(34) & strPWtag & Chr(34)
-
strMyUN = .Column(6)
-
strMyPW = .Column(7)
-
strSubmitButton = .Column(5)
-
strSubmitButton = Chr(34) & strSubmitButton & Chr(34)
-
End With
-
-
-
Dim webBrowser As Object
-
Set webBrowser = CreateObject("InternetExplorer.Application")
-
-
With webBrowser
-
.Navigate strURL
-
.Visible = True
-
' loop until the page has finished loading
-
Do While webBrowser.readyState <> 4 Or webBrowser.Busy
-
DoEvents
-
Loop
-
' username and password are the default element names - if they are different you need to figure them out and change accordingly
-
.Document.All.Item(strUNtag).Value = strMyUN
-
.Document.All.Item(strPWtag).Value = strMyPW
-
.Document.All.Item(strSubmitButton).Click
-
End With
-
When I run the code, I get this error message...
"Method 'Item' of Object 'NameOfForm' Failed"
The error occurs on this line:
.Document.All.Item(strUNtag).Value = strMyUN
if I remove the variable and run it as a fixed string like this...
.Document.All.Item("Nick").Value = strMyUN
... with "Nick" being the actual name of the Username field on the HTML page, the code works perfectly.
Does anyone know how I can get it to run with the variable?
Thanks,
Adam Just change your declaration for your elements (strUNtag, etc.) like so:
dim strUNtag
Don't try to add quotes or anything. Do not declare it as string or anything. Or leave out the declarations completeley and it will work.
cheers,
| | Member | | Join Date: Aug 2008
Posts: 67
| | | re: from combo box data - > Open website with username and password
Works great! Thanks MshMyob!
|  | Similar Microsoft Access / VBA bytes | | | /bytes/about
We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights.
Get the best answers to your questions from over 226,439 network members.
|