How to automate/parameterize/loop power query?

Is it possible to write a single generic powerquery command that'll loop through a list of URLs and load the data to a single table? the webpages in question have the same format & table names, just the data contained within is different. I verified
this by manually defining a powerquery from web import, importing, changing the url, and hitting refresh
Is it possible to write a generic powerquery import to pull the data in and have it loop to append the data to a target worksheet?
I tried macro recording some of the powerquery actions of defining an import but it didn't record anything so im assuming i cant use a vba loop to do this.
I want to avoid having to manually define each from web import explicitly. There's a few hundred i'd need to do.
Jakub @ Adelaide, Australia

Here's a quick walkthrough for how to do something like this. I recommend reading through to the end before trying this, because there will a step later on which you'll actually want to do first to simplify things.
Let's say I want to get presidential election results for multiple US States from Wikipedia. So to start, I use the "From Web" option inside Power Query and specify an URL of
http://en.wikipedia.org/wiki/California. This lets me pick between several sections of the web page, and I choose the one called "Presidential elections results" and edit it. The results look good
in the preview, so I go to the "advanced editing" view that shows me the M query:
let
    Source = Web.Page(Web.Contents("http://en.wikipedia.org/wiki/California")),
    Data5 = Source{5}[Data],
    ChangedType = Table.TransformColumnTypes(Data5,{{"Year", type number}, {"Republican", type text}, {"Democratic", type text}})
in
    ChangedType
The numeric index "5" worries me a little because I suspect that there's not enough regularity in the Wikipedia pages for the US states for the 6th section to always be the one that I want. So I edit the query to index by the section name instead
and confirm that it still produces the results I want:
let
    Source = Web.Page(Web.Contents("http://en.wikipedia.org/wiki/California")),
    Data5 = Source{[Caption="Presidential elections results"]}[Data],
    ChangedType = Table.TransformColumnTypes(Data5,{{"Year", type number}, {"Republican", type text}, {"Democratic", type text}})
in
    ChangedType
Now I need to turn this into a function that can be applied to multiple pages. The only way to do that is to edit the M query directly, but the transformation is relatively straightforward. Again, I confirm that the output is still what I expected after
making these changes.
let
    Election.Results = (state) => let
        Source = Web.Page(Web.Contents("http://en.wikipedia.org/wiki/" & state)),
        Data5 = Source{[Caption="Presidential elections results"]}[Data],
        ChangedType = Table.TransformColumnTypes(Data5,{{"Year", type number}, {"Republican", type text}, {"Democratic", type text}})
    in
        ChangedType
in
    Election.Results("California")
Now, I want to apply this function to multiple web pages. These might come from a different Excel sheet or from an external file, but I'm just going to build a table of web pages manually. I'll keep the function around, but won't use it just yet in the overall
formula. Once more, I confirm that the output is what I expect, which is a single table listing three states.
let
    Election.Results = (state) => let
        Source = Web.Page(Web.Contents("http://en.wikipedia.org/wiki/" & state)),
        Data5 = Source{[Caption="Presidential elections results"]}[Data],
        ChangedType = Table.TransformColumnTypes(Data5,{{"Year", type number}, {"Republican", type text}, {"Democratic", type text}})
    in
        ChangedType,
    States = Table.FromRows({{"California"}, {"Idaho"}, {"Massachusetts"}}, {"State"})
in
    States
Now I can use the "Insert Custom Column" feature of the UI to apply my function to the State column. This looks like "=Election.Results([State])" in the dialog. But when I click OK, something unpleasant happens: I get prompted several
times for "data privacy" settings for each of the URLs I'm trying to access. This is quite annoying, and we're looking for ways to improve the experience -- perhaps by letting you pick that the privacy settings apply to all of
http://en.wikipedia.org and not just to the specific URL you're trying to access.
Meanwhile, you can achieve the same thing manually with a kind of underhanded trick by creating a throwaway query which references
http://en.wikipedia.org and one other website, and using the "data privacy" prompt from that query to define a privacy rule for the entire domain. Exit the editor and create a new "Blank Query" with
this single formula: "= Binary.Length(Web.Contents("http://en.wikipedia.org")) + Binary.Length(Web.Contents("http://www.bing.com"))" This will prompt
you to pick a privacy setting for those two websites (I would suggest that "Public" is the right choice). Once you've done that, you can discard this query; its work is done.
Now if you go back and repeat the steps for the "elections" query, you'll avoid the privacy prompt.
At this point, you'll have a table with two columns: one that has the state, and one that has the results as Table values. We want to expand out those values, so we click on the expansion indicator in the column header for Custom and pick all fields. The
result is a table with four columns: State, Custom.Year, Custom.Republican and Custom.Democratic. The latter three fields can be renamed from either the UI or by editing the M code. In my case, I ended up with a program which looks like this:
let
    Election.Results = (state) => let
        Source = Web.Page(Web.Contents("http://en.wikipedia.org/wiki/" & state)),
        Data5 = Source{[Caption="Presidential elections results"]}[Data],
        ChangedType = Table.TransformColumnTypes(Data5,{{"Year", type number}, {"Republican", type text}, {"Democratic", type text}})
    in
        ChangedType,
    States = Table.FromRows({{"California"}, {"Idaho"}, {"Massachusetts"}}, {"State"}),
    InsertedCustom = Table.AddColumn(States, "Custom", each Election.Results([State])),
    #"Expand Custom" = Table.ExpandTableColumn(InsertedCustom, "Custom", {"Year", "Republican", "Democratic"}, {"Year", "Republican", "Democratic"})
in
    #"Expand Custom"
And the job is done!
Actually, the hard part might just be getting started. Finding a set of web sites which is consistent enough for a single parsing function to work can be rare. As an example, when I tried to add "Washington_(U.S._state)" to my list of states, I
discovered that its table was formatted differently than the others. And when I tried to add "New_york_state" to the list of states, I found that its section was named "New York State Presidential Election Results" instead of just "Presidential
election results". So it's possible that you'll have to do an awful lot of tweaking.
Nonetheless, this should cover the basic steps and help you get started.

Similar Messages

  • How can I create dynamic file references in Power Query?

    Hi all,
    I'm new at using PowerQuery, and so far I like it. There's one thing I am struggling with though... Once I have set up my PoweQuery connections, I don't find an easy way to change the file to which the query is connecting. I'm using it for a monthyl recurring
    process, and every month the source data to query on woudl be different. The same in format/structure, but just a different dataset.
    Is there a way to make the source setup more dynamic? Can I for example in a parameters sheet enter the name and path of the new source file and update the queries?
    Currently the Advanced editor shows me following file reference:
    let
        Source = Excel.Workbook(File.Contents("Z:\Templates\EMEA\Source Data Tables\EMEA_EW_Source_Data_for_Power_Queries v1.xlsm")),
    Thanks in advance for suggestions

    Yes, this is something that you can do with Power Query. Here's how you can do it:
    Create a table in Excel containing your parameter value. Let's say that it has one column, called ParameterValue, and one row.
    Create a new Power Query query that gets the data from this table. Call the query something like ParameterQuery.
    In your original query you will now be able to reference values from your parameter query by saying something like this:
    Source = Excel.Workbook(File.Contents(ParameterQuery[ParameterValue]{0})),
    HTH,
    Chris
    Check out my MS BI blog I also do
    SSAS, PowerPivot, MDX and DAX consultancy
    and run public SQL Server and BI training courses in the UK

  • How to use power query with sitecatalyst

    Hello,
    I need to use power query to import a table from sitecatalyst. Doing some tests I found that If remove the session from the url that has the report parameters, the app will redirect me to the login page, after entering the company, username and password
    it will load the report page with the data according to my filters.
    When I add the report url on the From Web option, excel does not allow me to add credentials. If I add the login+redirect url it allows me to add user/password but does not load the tables that appear on a regular browser.
    Is it possible to consume sitecatalyst without using Report Builder? If not, how you access the security info after you added the url.
    Thanks.

    To the best of my ability to tell, the right way to use this product from within Power Query would be to use its API. Unfortunately, we don't currently support either of the methods needed to be able to authenticate with the service (OAuth 2.0 and a relatively-custom
    digest-based method). Adding a mechanism to allow use of arbitrary OAuth-protected resources is a fairly high priority for us, and I hope we'll be able to deliver something before mid-2015.
    Scraping the website is very hard to do well -- both from an authentication and from a data discovery perspective.

  • How to use Power Query to load data from a single source into multiple tables

    Hi all,
    I have a requirement to load my data into three different data models using Power Query. Is that possible?
    My source is a SharePoint survey list, with similar questions like:
    1) Course lecturer - John Doe
    1a) The course was useful (rate 1 to 5)
    1b) The lecturer displayed good knowledge of topic (rate 1 to 5)
    2) Course Lecturer - Mary Brown
    2a) The course was useful (rate 1 to 5)
    2b) The lecturer displayed good knowledge of topic (rate 1 to 5)
    I would like to split the data into separate data models (one for John Doe; another for Mary Brown), so that I can compare the different lecturers. Other than running separate surveys for each of them, I thought of using Power Query to transform the data.
    Is it possible?
    Thanks.
    Regards
    GM

    Yes, this is possible.
    Start with a single query that returns you the data for all lecturers.
    Right-click on the "all lecturers" query in the queries pane, and choose Reference, once for each lecturer. This will create a query for each lecturer.
    Open the query for each lecturer and filter the data so that only that lecturer's results are visible.
    Click "Close & Load To..." for each lecturer's query  to load the data into the data model. This will create a data model table for each lecturer.
    If your question is more about how to transform such a survey list into a table that can be easily filtered, please provide an example of how the list shows up in Power Query.
    Ehren

  • Power Query; How do I reference a Power Pivot table from a Power Query query

    Hi,
    It's pretty awesome how you can define Extract Transform and Load processes within Power Query without having to type in a single line of code. However how do I reference a Power Pivot table from a Power Query query to avoid me repeatedly accessing
    the same data source (CSV) file with a view to increasing performance?
    We are aware of the reference sub menu option with Power Query. However the new query created by the "reference" option still seems to refresh data from the data source (CSV) rather than just referencing the base query. Is this understanding
    correct? There does seem to be a lot of hard disk activity when re-running the new query which is based on a base query rather than a data source.  So we were hoping the new query would just need to reference the base query in memory rather than rescanning
    the hard disk. Is there any way to ensure that the reference query just rescans the base query in memory?
    Kind Regards,
    Kieran.
    Kieran Patrick Wood http://www.innovativebusinessintelligence.com http://uk.linkedin.com/in/kieranpatrickwood http://kieranwood.wordpress.com/

    Hi Kieran,
    This sounds like something to be suggested for a future release. At the present time, Power Query will always re-run the entire Power Query query when refreshed. The Reference feature is analogous to a SQL view whereby the underlying query is always re-executed
    when it's queried, or in this case refreshed. Even something like using the Power Query cache to minimise the amount of data re-read from the disk would be helpful for performance but the cache is only used for the preview data and stored locally.
    It would be a good idea to suggest this feature to the Power BI team via the feedback smiley face.
    Regards,
    Michael Amadi
    Please use the 'Mark as answer' link to mark a post that answers your question. If you find a reply helpful, please remember to vote it as helpful :)
    Website: http://www.nimblelearn.com, Twitter:
    @nimblelearn
    Hi Michael, 
    Glad to hear from you about this.  And thanks to Kieran for bringing a very good valid point to debate. Will be glad to see this in future release. 
    - please mark correct answers

  • Power Query - How to format options for Web.Content()?

    I am trying to access a web api which can return data in either JSON or XML. When connecting with Power Query I get a "400, Bad request" error though and I suspect it could be due to Power Query not explicitly providing accepted Content-Types
    in the request. Anyone know how to add options to the Web.Content() request?
    http://office.microsoft.com/en-001/excel-help/web-contents-HA104112310.aspx
    Thanks!

    I believe the default reponse content-type is JSON. It doesn't serve Power Query with anything but an error response though and with the help of Network Monitor I caught a bit more details (in Swedish).
    Request:
    Http: Request, GET /platsannons/matchning, Query:lanid=1
    Command: GET
    + URI: /platsannons/matchning?lanid=1
    ProtocolVersion: HTTP/1.1
    Accept: */*
    UserAgent: Mozilla/5.0 (compatible; Microsoft.Data.Mashup; http://go.microsoft.com/fwlink/?LinkID=304225)
    Host: api.arbetsformedlingen.se
    Accept-Encoding: gzip, deflate
    Connection: Keep-Alive
    HeaderEnd: CRLF
    Response:
    HTTPPayloadLine: {"Error":{"statuskod":400,"titel":"Bad Request","beskrivning":"Felaktig headerparameter: [Accept-Language]"}}
    And the API can be found at:
    http://api.arbetsformedlingen.se/
    Would be great to be able to define custom headers to the request through options for cases like these. Thanks for the reply!
    Best regards,
    Daniel

  • Unable to setup Power Query automatic refresh in Power BI Sharepoint Portal as per instructions

    Followed all instructions to setup a PowerQuery connected data source for automated refresh but no luck. Keeps giving the following error message. A connection could not be made to the data source with the Name of 'TestConnection' when trying to test the
    connection.
    Here are the exhaustive steps.
    1. Created an excel file that uses power query to connect to an On Prem database
    2. Created a powerview against the resulting data set (stored in data model/powerpivot)
    3. Setup a data management gateway on O365 Power BI Admin center
    4. Installed Data Management Gateway and associated keys on the On Prem server (established connection handshake successfully)
    5. Created a data source in Power BI Admin center, specified Power Query as the data source, copied and pasted Power Query connection string from excel file, validated tested connection for data source
    6. Uploaded the report file to Power BI site
    7. Now, when trying to setup the automatic refresh, it pulls the information for the associated connections in the file correctly. However when trying to test the connection, constantly just returns with the following message
    A connection could not be made to the data source with the Name of 'TestConnection'. Correlation ID: c3d2a19b-f03d-4b14-8d5e-8fe0ed103238
    It looks like the DMG based update is still half baked. What is missing here since all of the data connection validation and handshake steps for gateway and data source works correctly. Why is it that the Powerquery based excel file is unable to leverage
    the DMG and datasource to connect and pull data?
    Any thoughts or guidance, much appreciated.

    Everything,
    Is this still an issue?
    Thanks!
    Ed Price, Azure & Power BI Customer Program Manager (Blog,
    Small Basic,
    Wiki Ninjas,
    Wiki)
    Answer an interesting question?
    Create a wiki article about it!

  • How do I Send in a value to the SQL Query Expression's variable created using Declare in Power Query

    I have gone through the other posts where in a parameter is sent to query created by power query but my ask is a bit different. 
    I am using a sql query to retrieve data using Power query which has 2 variables declared in the DECLARE section in the query. 
    Ex: 
    declare @Name varchar(1000)
    SET @Name= 'Alpha'
    declare @location nvarchar(1000)
    SET @location= 'Bravo'
    Select * from Infotable where Name = @Name and location = @location. 
    Now in the following query I would want to send in the values for  the declared variables using a table in my worksheet. I have followed the stuff present in the following post 
    http://blog.oraylis.de/2013/05/using-dynamic-parameter-values-in-power-query-queries/
    but when using the value name (let Name_parameter = Excel.Currentworkbook(), Name_Value = Name_Parameter [0][value]) in the Advance Editor as mentioned in the above post I am being thrown an error stating  Name_Value column doesn't exist.
    I am having a tough time figuring out what the problem could be..

    I have gone through the other posts where in a parameter is sent to query created by power query but my ask is a bit different. 
    I am using a sql query to retrieve data using Power query which has 2 variables declared in the DECLARE section in the query. 
    Ex: 
    declare @Name varchar(1000)
    SET @Name= 'Alpha'
    declare @location nvarchar(1000)
    SET @location= 'Bravo'
    Select * from Infotable where Name = @Name and location = @location. 
    Now in the following query I would want to send in the values for  the declared variables using a table in my worksheet. I have followed the stuff present in the following post 
    http://blog.oraylis.de/2013/05/using-dynamic-parameter-values-in-power-query-queries/
    but when using the value name (let Name_parameter = Excel.Currentworkbook(), Name_Value = Name_Parameter [0][value]) in the Advance Editor as mentioned in the above post I am being thrown an error stating  Name_Value column doesn't exist.
    I am having a tough time figuring out what the problem could be..

  • Blank Record Appearing in Power Pivot, How do I ensure that my Power Query script is filtering out all the Blank Records

    Hi,
    I noticed once of my Fact tables in my Power Pivot model contains a blank record. I can't understand why.
    So I added a Filter expression to the underlying Power Query query, something like; -
    Text.Length("MyField") > 0
    However after refreshing the Power Query query which contains the above expression the blank record still appears within my Power Pivot table.
    Kind Regards,
    Kieran.
    Kieran Patrick Wood http://www.innovativebusinessintelligence.com http://uk.linkedin.com/in/kieranpatrickwood http://kieranwood.wordpress.com/

    hi..
    As my understand, the blank record in Power Query will be return null value . So that, You try to use Text.Length("MyField" ) <> null.
    Regards,

  • Automatic Refresh of a Merged Power Query giving 'Table Not Registered' error

    Scenario: I have 5 tables in my Azure VM SQL database associated with my ERP system. I have loaded all 5 tables into a 'Build Excel' workbook, merged the tables together and created a dataset that my users will be using.  From that 'Build
    Excel' workbook - I published to the BI catalog a data set simply called 'Customer information and Statistics' - This is searchable by my users and they don't have to go through the effort of combining the 5 tables.
    I have a published workbook that uses the 'Customer Information and Statistics' data set and nothing else.  I tried to schedule a refresh of the data and it failed (below is the error when I did a manual refresh):
    OnPremise error: Sorry, the data source for this data connection isn't registered for Power BI. Ask your Power BI admin to register the data source in the Power BI admin center. An error occurred while processing table 'Customer Information and Statistics'.
    The current operation was cancelled because another operation in the transaction failed.
    So, going down that rabbit hole, I began the process of 'registering' this in Power BI - however, when I copied in the connection string it began walking me through a process of providing credentials to the 5 tables in my SQL server - that are already exposed
    in my main data Sources.  I figured I would continue and tried to use the service account credentials that my main data sources use and it would not properly authenticate.
    Taking a step back it prompted a few questions:
    Why am I being asked to register these 5 merged data sources that are already exposed in my base data sources?
    Is my approach of creating 'Friendly named' Merged datasets for my users an incorrect approach?
    Is there a different method I should be using to establish autorefresh on Merged datasets in these published workbooks using Power Query?
    Thanks for the help -
    Tom Grounds

    Tom, can you submit this as a bug in the UI via the Smile Frown button?
    Thanks!
    Ed Price, Azure & Power BI Customer Program Manager (Blog,
    Small Basic,
    Wiki Ninjas,
    Wiki)
    Answer an interesting question?
    Create a wiki article about it!

  • How to load excel files from my SharePoint site to Excel client by using Power Query

    Hello,
    I am using Power Query to import some Excel files from shared documents on SharePoint site. After I type the URL of my SharePoint site into the filed, the expected Excel files do not appear in Power Query. Please provide the method as soon as possible.
    Thanks!

    Could you check if
    this post can help?

  • How to disable update notifications for Power Query?

    Is there a way to disable the notification of available updates for Power Query? Command line switch on install, anything?
    Thanks!

    it was included in the Power Query version released in September 2014. HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft Power Query for Excel DisableUpdateNotification dword 1 will disable the update notification.
    Please remember to click "Mark as Answer" or "Vote as Helpful" on the post that answers your question (or click "Unmark as Answer" if a marked post does not actually
    answer your question). This can be beneficial to other community members reading the thread.
    This forum post is my own opinion and does not necessarily reflect the opinion or view of my employer, Microsoft, its employees, or MVPs.
    Twitter:
    @alexverboon | Blog: Anything About IT

  • How to automate lambda power supply

    Can anyone help me how to automate lambda powersupply..Using the lambda drivers vi I've configure to control powersupply programed by setting different voltage levels and current limits at regular interval by changing input variable... Now I have to automate this system to automatically set the pre programmed values and perform the operation.

    Naveen,
    You will need to use Action step of Teststand using the labview adapter.You can refer the help or the examples to find out how to call VI from TestStand.

  • How to get Mavericks server that is connected to a UPS to restart automatically after a power outage.

    This is driving me crazy. Is there anyone running Mavericks as a mission critical server on Backup Power Supplies that has a way to get the servers to restart automatically after a power outage. The UPS vendors all have software for Windows, but not Macs, and the setting in System Preferences, doesn't work with the UPS's Iv'e tried (2 different APC models (Smart and Back-UPs), one Triplite (Smart) and one CyberPower, (all claiming to be Mac compatible))

    APC do apparently still do a command-line daemon (PowerChute Network Shutdown) which monitors over the network the UPS and will cleanly shutdown the Mac. For lower-end UPS devices these are typically connected via a USB cable and the built-in Apple System Preferences let you control the options - if it is a model supported. There is however a big limitation of using a USB connection which is that you can only connect a single computer to a UPS via USB and of course most companies have multiple servers.
    It maybe that what is happening even if you use APC's software is the following -
    Power failure detected by UPS
    Signal sent to Mac
    Computer does a clean shutdown
    Power restored
    UPS has no way to tell Mac because it is shutdown and Mac does not support 'Wake on LAN' if fully shutdown
    The Mac does have an option to 'Startup automatically after a power failure'. However this might only take place if the Mac is not cleanly shutdown, it could be that if the Mac is cleanly shutdown it does not count this as a power failure. If this is correct then there is nothing that can be done as users to resolve this, the only way it could be resolved would be if Apple provided a way for a tool like APCs software to both do a clean shutdown and set a flag as this being due to a power failure so that when the Mac does detect the power being restored it triggers the Mac in to booting.
    In the dim and distant past when Macs used ADB to connect keyboards and mice the ADB interface did support an external power-on signal. This does not exist for USB.
    Personally I have regarded the APC software (PowerChute Network Shutdown 3.0.1) to be so badly supported and so old as to be too risky to use. It lists 10.7 and 10.8 but not 10.9 and uses Java 1.6 which itself is unsupported. There is a third-party tool you might want to look at called NUT (Network Ups Tools) see http://www.networkupstools.org
    NUT is free and lets you do clever things like -
    Connect a single computer via serial or USB to the UPS
    Act as a 'server' over the network to other computers sharing the UPS
    When power failure is detected the NUT 'server' sends a signal to the NUT 'clients' so all of them know that there is a power failure and can do their own clean shutdowns
    This gets round only being able to connect a single computer via USB.

  • How to resolve the loop in universe level

    how to resolve the loop in universe level

    Hi, Kashim
              In univese level loops resolved by Chasm Trap and Fan Trap methods.
    Chasm Trap:  A chasm trap is a type of join path between three tables when two many-to-one joins converge on single table, and there is no context in place that separate the converging join paths.
    There is "many-to-one-to-many"relationship beween the three tables in the universe structure.you can define a context for each table at the many end of the joins.
    A chasm trap is not dependent on the object types, the query could be made up of only dimensions,only details,or only measures,or any combination of the three types with the "many " tables for chasm to occure.
    you can also detect the chasm trap Automatically, tool---->Detect context
    To resolve the chasm trap, you need to make two separate Queries and than combine the results Depending on type of objects defined for the fact tables and the type of end user environment,
    Fan trap: it is occured when there is a "one-to-many" join to the table that "fans out " into another "one-to-many" join to another table.
    Avoid fan trap: The first place by relating all measure objects in the universe to the same table in the universe structure,Avoid placing a measure on anything other than the last table in a in a table path, which is the table with the "many" cardinality attached to it.
    This methods is not recomended as it only works for measure objects and may result in inefficienies in processing the query. This resolution works the same for chasm and fan traps.
    you can create more alias tables based on your requirement in single universe. and it is true conext, when two or more paths.
    Theese methods also apply for resolving loops:
    Short cut join also one method for resolving loops
    Aggregate aware function used another waty for resolving loops
    if you are not resolving the loop result is  redusing the number of records.

Maybe you are looking for

  • New contract account for every line item in subscription order....

    Hi Guys, I am having a problem with the subscription order. Whenever I change the subscription order and add a line item to it, SAP by default  creates a new contract account for that line item. Whereas I want to assign the same contract account to t

  • Filter call and sms

    hello. I want to block only calls they receive. I do not want to be locked and SMS. because when receiving messages from phone operator, software block my message. I want to restrict only private numbers. How can I do this?

  • Gnome-shell Crash Using Type To Search In Dash

    When I change Gnome-shell theme from the default Adwaita, I can't use Type To Search in the Dashboard. As soon as I type that first letter, it freezes and nothing works, keyboard, mouse. I had to do a hardware reset to log back in. In the dash, I can

  • Difference between assert new / assert /modify  in business rules

    Hi , Can any one please advice whats the difference between assert new / modify / assert .. assert and modify both are being used for assigning .. Regards, Naga

  • TX battery

    I was wondering if there was a stronger battery for my TX.  I purchased my Palm TX not long ago and am feeling frustrated by the short duration of the battery life.  Thanks Message Edited by Mathgeek37 on 10-22-2008 06:58 AM