tags:

views:

380

answers:

5

About a year ago, a manager in another department brainstormed that I could code up some VBA to auto call me in the event one of my automated reports crashes. I laughed at the time, but my skills have improved considerably and I wonder if it's technically possible

(not that I'd actually do it, mind you. I like my early Saturday mornings workplace-free).

This would need:
1. Access to the internet (not a problem)
2. A means of connecting to some service to place the call, preferably free, lest I cost the company $10 a month (Skype?)
3. An automated voice (already exists on the standard Access install package)

What do you think?

Edited 08/24/2009 - Spacing added. No text was changed.

+9  A: 

Do the simplest thing that could possibly work. In this case, making phonecalls is hard, but sending emails is easy.

Most cellphone providers expose a phone's mailbox (something like [email protected]) to the internet, allowing you to send an email to that address and have it show up on your phone as a text message.

Juliet
I agree, I think this approach is far more useful, too. I'd rather get a quick message I can read instead of having to listen to an automated voicemail/phone call.
unforgiven3
Yeah, a text message or e-mail would be more informative than a phone call. A phone call with a synthesized voice might be cool, but not as practical.
Kyralessa
For lots of options in sending emails via VBA see Microsoft Access Email FAQ http://www.granite.ab.ca/access/email.htm
Tony Toews
Kyra said it best. It wouldn't be as cool, but it is more practical. And the coding would just use a standard email function.
PowerUser
+1  A: 

You can use Skype in combination with VBA. It's actually not that complicated and you will find a couple of samples written in VBScript on the Skype website. I don't know whether it is possible to actually play an audio file, but you can send SMS easily:

 '// Create a Skype4COM object:
Set oSkype = WScript.CreateObject("Skype4COM.Skype", "Skype_")

'// Start the Skype client:
If Not oSkype.Client.IsRunning Then oSkype.Client.Start() End If

'// Send SMS:
Set oSMS = oSkype.SendSms("+1234567890", "Hello!")

WScript.Sleep(60000)

'// Message event handler:
Public Sub Skype_SmsMessageStatusChanged(ByRef aSms, ByVal aStatus)
  WScript.Echo  ">Sms " & aSms.Id & " status " & aStatus & " " & oSkype.Convert.SmsMessageStatusToText(aStatus)
End Sub

'// Target event handler:
Public Sub Skype_SmsTargetStatusChanged(ByRef aTarget, ByVal aStatus)
  WScript.Echo  ">Sms " & aTarget.Message.Id & " target " & aTarget.Number & " status " & aStatus & " " & oSkype.Convert.SmsTargetStatusToText(aStatus)
End Sub
0xA3
A: 

http://chandoo.org/wp/2009/02/05/twitter-from-excel/. Set up a twitter account that pings your phone and create twitters with this.

It's not as easy as the email idea, but you could be the first person to tweet from Excel for a reason other than novelty.

Dick Kusleika
A: 

Another quite simple option is to send yourself a text message which is almost but not quite as easy to do as sending an email, but much easier to recieve. Companies such as clickatell.com provide cheap web based text services with good api's where once you are signed up all you need do is call a URL and you can send a text message.

Well worth a try.

Toby Allen
+1  A: 

If you have a old dial up modem, then you could (in 'old VB6 days) dial via the modem programmatically, however I'm not sure if its possible in VBA. The next challange would be to get the audio down the line.

I would suggest that you butcher a headless earphone & microphone that connects to phones, you could then take a 3.5mm audio jack from your PC speaker output and connect this to the headless earphone/microphone set, unless there are cables that already do that (possibly).

Then it would be a simple matter of coding up Microsofts 'text to speech' engine.

Darknight

Darknight
This is what I had in mind when I posed the question.
PowerUser