Hi, I also work in this way - get what I want from Management Studio then work in Excel. Only issue is sometimes I have to do it several times to tune the query. Other data analysts work in a similar way because of the filtering etc in Excel, pretty lousy in Management Studio. Andrew. -----Original Message----- From: Blind-sysadmins [mailto:blind-sysadmins-bounces@lists.hodgsonfamily.org] On Behalf Of Chris Nestrud Sent: 31 August 2014 21:28 To: 'Blind sysadmins list' Subject: Re: [Blind-sysadmins] Script to read column headers in SQL management studio. Thank you for this. I have often used the Query menu to specify that the results should be provided in text, then copied and pasted that into Excel. This preserves the header, and Excel can be a good choice for further exploring or manipulating the data. -----Original Message----- From: Blind-sysadmins [mailto:blind-sysadmins-bounces@lists.hodgsonfamily.org] On Behalf Of Darragh Ó Héiligh Sent: Sunday, August 31, 2014 3:34 AM To: blind-sysadmins@lists.hodgsonfamily.org Subject: [Blind-sysadmins] Script to read column headers in SQL management studio. Good morning, A problem that I've been having for far too long is reading column headers in sQL management studio. If I just opened the table and showed everything in it the column headers were spoken / Brailled however for a large table, that's very wasteful and also not particularly useful. I was given a tip during the week to use GetFocusRect so using this, I quickly wrote up the following scripts. Associate these with keys other than left and right or you will need to put a check in to ensure you are in the right control. I'm only thinking of this requirement as I'm writing this Email so I haven't done that yet. There are a few things I had to do to work around two problems. 1. I've had to turn speech off while I'm moving to the next cell. Even though NextCharacter shouldn't speak the next cell it rambles a bit. 2. I've had to put a pause in because the getFocusRect function was firing too quick and getting the previous rectangle. 3. I know I shouldn't be using SayString. Script SpeakNextColumnHeader () var int Left, int Right, int Top, int Bottom, string sText SpeechOff () NextCharacter () Pause () GetObjectRect(left,right,top,bottom,true,1) bottom =470 let sText = GetTextInRect(left,top,right,bottom,0,IgnoreColor,IgnoreColor,true) SpeechOn () SayString (sText) SayWord () EndScript Script SpeakPreviousColumnHeader () var int Left, int Right, int Top, int Bottom, string sText SpeechOff () PriorCharacter () Pause () GetObjectRect(left,right,top,bottom,true,1) bottom =470 let sText = GetTextInRect(left,top,right,bottom,0,IgnoreColor,IgnoreColor,true) SpeechOn () SayString (sText) SayWord () EndScript You'll need the usual includes for HJConst etc. Darragh _______________________________________________ Blind-sysadmins mailing list Blind-sysadmins@lists.hodgsonfamily.org http://lists.hodgsonfamily.org/listinfo/blind-sysadmins _______________________________________________ Blind-sysadmins mailing list Blind-sysadmins@lists.hodgsonfamily.org http://lists.hodgsonfamily.org/listinfo/blind-sysadmins