WordPress Site Not displaying properly in Internet Explorer (IE)

I had a client contact me today, informing me that their site wasn’t displaying properly in IE10, not like it used to.  The calendar (monthly and upcoming events) were not displaying properly and the media library was coming up blank!?  Why?!

After doing some basic troubleshooting, I was able to determine it wasn’t a IE10 issue, but rather a IE issue.  IE’s Compatibility View appears to break things.  It would seem that it is critical to have the Compatibility View disabled when on WordPress sites to get the proper visualization.

Case and Point:
With Compatibility View Enabled

WordPress Calendar with IE Compatibility Enabled

With Compatibility View Disabled

WordPress Calendar with IE Compatibility Disabled

One more reason not to used internet Explorer altogether.  Better off with an alternate browser such as Mozilla Firefox, Google Chrome, Opera, …

This also worries me because I cannot control how general web surfers have their browser configured, so how many visitors to this site, or any other site, aren’t getting the proper user experience?

Acer 7745G Wireless Network Dropping or Not Finding Any Wireless Network Connections

As mentioned in my previous post ACER Aspire 7745G Review, I have been experiencing continual wireless networking issues.

  • If I actually manage to make a wireless connection, it randomly and continuously drops the connection and then it is impossible to restore the wireless without rebooting.
  • Quite often no wireless connections will appear in the Wireless network pop-up and even if you refresh the available connections, none will ever appear.   It always remains blank!

My first idea was let’s make sure everything is up-to-date.  So I made sure Windows was topped up, that all my device drivers were the latest and greatest, that my BIOS was current,…  Sadly this did not fix the wireless issue.  It did however, help with other issues described in my previous post (link provided above).

My second idea was contact Acer directly.  It’s their laptop and I can’t be the first with this issue.  So I did. Sadly, their helpdesk is useless.  They informed me that this has never been reported as a problem previously and then went over the standard useless troubleshooting (even referred me to a gateway support page http://support.gateway.com/s/Checklists/BPC/ck2007021226.shtml).  After contacting them again explaining that even those steps had not resolved the problem, they suggested a reformat of a 2 month old laptop?! and finally left me to my own devises.  Never actually resolving anything, and certainly not helping.  What I love about this is I am not the first person to experience this issue, see: http://www.techsupportforum.com/forums/f108/acer-aspire-7745-loses-wifi-connection-534943.html, one of many threads about this issue.  It is just sad that even when people do contact Acer, they either do not have a good system for tracking issues, or they prefer to burry their heads rather than actually solve such issues.

I then turned my attention to the source of the problem: Broadcom.  Sadly, once again, they’re less than useless.  Their site offers no support.  I couldn’t find any drivers, little alone a user manual explaining any of the properties that one can configure in the configuration of their adapter.  You’d think they’d have some info; you’d be wrong!

So, I simply started trying things.  Below is what worked for me, hopefully it can help you:

  • I went into Network and Sharing Center
  • Clicked on Change adapter settings
  • Right-Clicked on my Wireless Network Connection – Broadcom 802.11n Network Adapter
  • Clicked on Properties
  • Clicked on Configure
  • Went onto the Advanced tab
  • Selected the “IBSS Mode” and changed its’ value to “54g – Performance”
  • Then click OK

Since making this change, my connection has not dropped.  Don’t ask me why using the default “802.11a/b/g/n Auto” value cause the problem that we’ve experienced.  Obviously their is a flaw in the driver or windows.  All I know is this fixed my problem (3 years of frustrations finally resolved!).

There is 1 downside to this ‘fix’.  by switching to 54g mode, you will not see other networks in a/b/n modes.  So if ever you go away from your home or office and need to connect to a remote network, you may need to switch the setting back temporarily.

I hope this helps someone out there.  Please let me know if it does or if you have another solution that worked for you.

 

MS Access – Bypassing the Outlook E-mail Security Warning

Yet again today, I was asked in a forum the infamous question regarding how to disable the security warning that pops up when trying to automate e-mails.  So I thought it was time to make this post on my site to help everyone that has this question.

Anyone that had the pleasure of trying to automate sending e-mails using automation (SendObject method, Outlook Automation) had the pleasure of the following security pop-up.

Microsoft Office Outlook Security Warning

So basically, Microsoft has thrown a stick in developer’s wheels in the hopes of stoping malicious software from propagating unbenounced to the user.

So the question remains, what is a developer to do to make a seamless e-mail tool? Well, as usual, there are a couple possible solutions:

Solution 1 :: Click-Yes
One option would be to download and install a piece of software such as ClickYes.  The problem with this is that it can effectively make you vulnerable to propagating malicious software… since it effectively will always authorize any access, whether the request comes from your app, or not. This also requires installation on every computer that will require sending e-mails automatically. In a controlled environment, this can be done, but for general users, this will not be a viable option.

Solution 2 :: Outlook Redemption
Another popular option is to use Outlook Redemption to send your e-mail.  The downside here is that it require registering a COM library and then recoding your e-mail automation routine.  The positive aspect here is that there are lots of examples available online!

Solution 3 :: Swicth E-mail Techniques
In my opionion, this is the easiest and best solution.  Simply stop sending e-mails through Outlook altogether.  The major downside here is that since you don’t send the e-mails through Outlook, you will not have a copy saved in your Sent Items.  The pros is that it works!  It works seamlessly!  You could switch over to CDO mailing techniques, use BLAT, use WinSock, …  Tony Toew’s covers a number of possible alternate techniques on his site http://www.granite.ab.ca/access/email.htm.

So at the end of the day, there are several solutions available to get around this problem.

MS Access – Who is Logged In?

Another common need for most database administrators & developers is to be able to see who is logged into a database. A very common solution to this in the past has been to use the Jet UserRoster, see:

I personally find much more useful to create a table to log the database usage by the users and have a form open in hidden mode at the database startup to populate the table in question. There is also the added benefit that this method permit much more detailed information, and historical review (not possible with the UserRoster). The historical data can be very useful when determining users that did not disconnect properly (which can lead to corruption) from the database. The extra information can also be useful when troubleshooting problems.

So how can you create this simple log tracking form? Very easily and here is how:

  1. First, we need to create a table to log the comings and goings within our database. Please note that you can add or remove the quantity (number of fields) you wish to keep track of. To do so you can use the following Data Definition Language (DDL) to create the corresponding MS Access table:
CREATE TABLE tbl_Db_UserTracking 
   (UTEntryID AUTOINCREMENT PRIMARY KEY,
   OSUserName VARCHAR(255) NOT NULL,
   ComputerName VARCHAR(255),
   ComputerIP VARCHAR(20),
   DbEntry datetime NOT NULL,
   DbExit datetime);
  1. Then we need to create a login tracking form which will get open at startup in a hidden mode (so the user never actually sees it). Below is one example of this form. Since the form is never actually visible, you need not waste any time formatting it or performing any special layout… A bare minimum is required.
  2. Then we need to setup a method to automatically launch the form at startup. Since all of my databases use an AutoExec macro to perform a number of steps (relink the table, check user permissions, stratup logoff forms, …) at starup it is only logical to merely add this to the function that the AutoExec macro calls.
  3. Then we need to create a form for the administrator to use to review the data.

Disclaimer/Notes:

If you do not have Microsoft Access, simply download and install the freely available runtime version (this permits running MS Access databases, but not modifying their design):

Microsoft Access 2010 Runtime
Microsoft Access 2013 Runtime
Microsoft Access 2016 Runtime
Microsoft 365 Access Runtime

All code samples, download samples, links, ... on this site are provided 'AS IS'.

In no event will Devhut.net or CARDA Consultants Inc. be liable to the client/end-user or any third party for any damages, including any lost profits, lost savings or other incidental, consequential or special damages arising out of the operation of or inability to operate the software which CARDA Consultants Inc. has provided, even if CARDA Consultants Inc. has been advised of the possibility of such damages.

Download a Demo Database

Feel free to download a 100% unlocked demo copy by using the link provided below:

Download “Access - Who's Logged In (x32 accdb)” WhosLoggedIn_V1.000.zip – Downloaded 43767 times – 33.27 KB

Version History

V1.000 (2018-10-18)

D-Link KVM-222 2-Port USB KVM Switch with Audio Support – Review

Per my previous review, http://www.devhut.net/2013/03/07/iogear-gcs24u-4-port-usb-cable-kvm-review/, I was on the market for a KVM switch. Sadly, none of the IOGEAR were acceptable since they all presented the same issue of needing 2 usb ports on each computer. I ended up finding the D-Link KVM-222 2-Port USB KVM Switch with Audio Support.

D-Link KVM-222 2-Port USB KVM Switch with Audio Support

The D-Link KVM-222 2-Port USB KVM Switch with Audio Support installed very easily, only required 1 USB port (rather than 2 like the IOGEAR) and also included audio support (bonus!). So now at the click of a button my screen switches, my keyboard and mouse switch and the audio system switches between my computers.

PROs:

  • Super easy to install, simply plug-in
  • Only requires one free USB port
  • Switches fast and without any screen flicker

CONs:

  • The plug where the video connection is made is very tight against the cable, so it took a bit of pursuation to make the connection. This is a one time deal, but D-Link designers could have given an extra couple milimeters in their design.
  • Unlike the IOGEAR where there is a central unit from which connecting wires go from, the D-LINK doesn’t have a central unit, rather each connector is a large (relatively speaking) connector. So you need to be able to accomodate a good 5-6″ to the side, or behind, of your USB port to allow for the unit add cables.

To summarize, the D-Link KVM-222 2-Port USB KVM Switch with Audio Support, thus far (3 hours in to testing) was easy to setup and worked without any configuration. I would give it a 10/10 for functionality and 7/10 for design (considering size and interference with the video connector). All in all it appears to be a good unit.

I will post back in a few weeks to append this review based on reliability…

Update 2013-03-13
So far, so good. I have been plesantly please with the unit for the past few days a discovered a few nice features.

  • If you start up a single computer, it automatically detects and cycles to switch the input/output to that device.
  • Likewise, if you have multiple computers running and you shutdown the active computer, it will automatically cycle to the other computer.

Just minor features, but they are still very useful (and were not present on the IOGEAR units that I have previously used).

IOGEAR GCS24U 4-Port USB Cable KVM – Review

As mentioned in a previous post, I had previously purchase a IOGEAR 2-Port KVM swicth which croacked after just a couple of months. After having 2 different model break, or cause problems I decided to just switch back and forth manually. I got tired of this and yesterday decided to try again.

IOGEAR GCS24U 4-Port KVM Switch

I went out and purchsed an IOGEAR GCS24U 4-Port USB Cable KVM. Looked liked what the doctor ordered! Super easy to setup, simply connect. No software, no driver, no hassel. Just one major issue: The new and improved model (IOGEAR GCS24U 4-Port USB Cable KVM) now has 2 usb cables that you have to plug into each computer. My Laptop only has one next to the Video input and 3 other on the other side of the case. Sadly, the IOGEAR GCS24U 4-Port USB Cable KVM cables are fused together and only offer about 6-8″ of freedom from one another. As such, I couldn’t plug in the 2nd USB cable. So I could have only either my keyboard or my mouse functional at one gievn time; sorta defeating the purpose of a KVM.

I was very surprised with this setup as the old model had only one USB connection into each computer. Obviously the KVM acted as a hub in some fashion, but IOGEAR seems to have done away with this for some reason, which I cannot comprehend. This seems to be going backwards rather than forwards to me.

What I can say based on my brief testing is the KVM switch worked very nicely. If it wasn’t for the issue that the cable were fused together, I would have kept it. It is small, easy to setup, nice long independant switch to cycle through the computers, but the cables being fused together I just don’t get. The old model had an ajustable band that allowed one to ajust the free length of the cables, but IOGEAR changed their design, for the worse.

So to summarize, good KVM switch (based on limited testing) as long as you have 2 free USB ports at the same location as your video output, otherwise it is worthless.

You may also like to read my Review of the D-Link KVM-222 2-Port USB KVM Switch with Audio Support.

MS Access – VBA – Determine a Filename without the Extension

Once again, in my programming career, I have on numerous occasions needed to extract the filename from a fully qualified ‘path/filename.extension’, but just the filename without the extension. Below, is a very simple function to do so.

'---------------------------------------------------------------------------------------
' Procedure : GetFileNameWOExt
' Author    : Daniel Pineault, CARDA Consultants Inc.
' Website   : http://www.cardaconsultants.com
' Purpose   : Return the filename without the extension from a path\filename input
' Copyright : The following is release as Attribution-ShareAlike 4.0 International
'             (CC BY-SA 4.0) - https://creativecommons.org/licenses/by-sa/4.0/
' Req'd Refs: None required
'
' Input Variables:
' ~~~~~~~~~~~~~~~~
' strFileWPath - string of a path and filename (ie: "c:\temp\test.xls")
'
' Usage:
' ~~~~~~~~
' ? GetFileNameWOExt("C:\temp\test.xls")
'       -> test
' ? GetFileNameWOExt("C:\Users\Dev\Desktop\My Database V1.000.accdb")
'       -> My Database V1.000
'
' Revision History:
' Rev       Date(yyyy/mm/dd)        Description
' **************************************************************************************
' 1         2012-02-24             Initial Release
' 2         2020-04-24              Update to account for filenames with periods in them
'                                   Updated the function header
'---------------------------------------------------------------------------------------
Function GetFileNameWOExt(ByVal strFileWPath As String)
    On Error GoTo Error_Handler

    GetFileNameWOExt = Right(strFileWPath, Len(strFileWPath) - InStrRev(strFileWPath, "\"))
    GetFileNameWOExt = Left(GetFileNameWOExt, InStrRev(GetFileNameWOExt, ".") - 1)

Error_Handler_Exit:
    On Error Resume Next
    Exit Function

Error_Handler:
    MsgBox "The following error has occurred" & vbCrLf & vbCrLf & _
           "Error Number: " & Err.Number & vbCrLf & _
           "Error Source: GetFileNameWOExt" & vbCrLf & _
           "Error Description: " & Err.Description & _
           Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl) _
           , vbOKOnly + vbCritical, "An Error has Occurred!"
    Resume Error_Handler_Exit
End Function

MS Access – VBA – Determine a File’s Extension

Another simple question, with a simple answer! At some point, you will need to extract, determine, the extension of a file. Below is a straightforward function to do so.

'---------------------------------------------------------------------------------------
' Procedure : GetFileExt
' Author    : CARDA Consultants Inc.
' Website   : http://www.cardaconsultants.com
' Purpose   : Return the file extension from a path\filename input
'
' Input Variables:
' ~~~~~~~~~~~~~~~~
' strFileWPath - string of a path and filename (ie: "c:\temp\test.xls")
'
' Returns:
' ~~~~~~~~
' xls
'
' Revision History:
' Rev       Date(yyyy/mm/dd)        Description
' **************************************************************************************
' 1         2012-Feb-24                 Initial Release
'---------------------------------------------------------------------------------------
Function GetFileExt(ByVal strFileWPath As String)
On Error GoTo Error_Handler

    GetFileExt = Right(strFileWPath, Len(strFileWPath) - InStrRev(strFileWPath, "."))

Error_Handler_Exit:
    On Error Resume Next
    Exit Function

Error_Handler:
    MsgBox "The following error has occurred." & vbCrLf & vbCrLf & _
            "Error Number: " & Err.Number & vbCrLf & _
            "Error Source: GetFileExt" & vbCrLf & _
            "Error Description: " & Err.Description, _
            vbCritical, "An Error has Occurred!"
    Resume Error_Handler_Exit
End Function

VBA – Extract the Nth Term from a String

The heading says it all. Below is another straightforward function to extract the Nth element/term from a input string. I have offset the Element number so it is not 0 based, but rather 1 based. This to make it intuitive to use.

'---------------------------------------------------------------------------------------
' Procedure : ExtractNthTerm
' Author    : Daniel Pineault, CARDA Consultants Inc.
' Website   : http://www.cardaconsultants.com
' Purpose   : Extract the nth term form a string
' Copyright : The following may be altered and reused as you wish so long as the
'             copyright notice is left unchanged (including Author, Website and
'             Copyright).  It may not be sold/resold or reposted on other sites (links
'             back to this site are allowed).
'
' Input Variables:
' ~~~~~~~~~~~~~~~~
' sString   : Full string to extract the term from
' sDelim    : Separating delimiter character
' iTermNo   : No of the term to extract
'
' Usage:
' ~~~~~~
' ExtractNthTerm("William is a great guy.", " ", 4)  -> will return great
' ExtractNthTerm("apple,pear,orange,mango,lemon", ",", 3)  -> will retun orange
'
' Revision History:
' Rev       Date(yyyy/mm/dd)        Description
' **************************************************************************************
' 1         2009-Feb-7                Initial Release
'---------------------------------------------------------------------------------------
Function ExtractNthTerm(sString As String, sDelim As String, iTermNo As Integer) As String
    On Error GoTo Error_Handler

    aTerms = Split(sString, sDelim)
    ExtractNthTerm = aTerms(iTermNo - 1)

Error_Handler_Exit:
    On Error Resume Next
    Exit Function

Error_Handler:
    If Err.Number = 9 Then
'        MsgBox "You have requested a Term No that exceed the supplied String no of term." & vbCrLf & vbCrLf & _
'               "You have requested term " & iTermNo & " and there only appears to be " & UBound(aTerms) + 1 & _
'               " in the supplied string (" & sString & ").", vbCritical + vbOKOnly
        ExtractNthTerm = ""
    Else
        MsgBox "The following error has occurred." & vbCrLf & vbCrLf & _
               "Error Number: " & Err.Number & vbCrLf & _
               "Error Source: " & sModName & "/ExtractNthTerm" & vbCrLf & _
               "Error Description: " & Err.Description, _
               vbCritical, "An Error has Occurred!"
    End If
    Resume Error_Handler_Exit
End Function

MS Access – VBA – Web Scrapping

I see frequently asked on various forum questions regarding pulling information off of websites. The concept is relatively straight forward, load a page, grab the content, parse what you need… You can use various need, get into textual parsing, DOM manipulation and extraction, …

There are a number of approaches that can be used, such as: Internet Explorer automation, MSXML2.XMLHTTP, …

As usual, the information on how to do this is sparse, and sometimes hard to find, especially when you don’t even know the proper terms to search for in the first place. Below are a few links to help you get on your way.

http://www.accessmvp.com/djsteele/smartaccess.html – Scroll down to the bottom and look at the article entitled: “April 2006: Surfs up!”