My Journey: From Access/VBA to Building a Python AI Chat App (with LLM Help!)

Uncle Gizmo

Nifty Access Guy
Staff member
Local time
Today, 18:17
Joined
Jul 9, 2003
Messages
17,398
Hi everyone, Tony (Uncle Gizmo) here!

Many of you know me from my years working with Microsoft Access and VBA. It's a powerful platform, and I've built countless solutions with it. But recently, I embarked on a bit of an "accidental" adventure into the world of Python, web technologies, and Large Language Models (LLMs), and I wanted to share my experience, as I think it might resonate with many of you.

The Starting Point: A Familiar Itch
It all began with a simple need: a Chrome extension I used for transcription started acting up. My first instinct wasn't to dive into JavaScript and Chrome APIs – that felt like a world away from VBA forms and modules! However, I'd been hearing a lot about LLMs (like ChatGPT, Gemini, etc.) and their ability to generate code. I thought, "Could an AI help me build a replacement?" Long story short, with the AI as my coding partner, I managed to get a new transcription tool up and running:- (Nifty Transcription Tool) This was my first taste of "programming with an LLM," where I was directing the AI, defining the logic, and debugging the output, rather than writing every line of code in an unfamiliar language.

Dipping My Toes into Python (via Local AI)
This success made me curious. I wanted to experiment with running LLMs locally on my PC for privacy and cost reasons. I set up Ollama with the Mistral model, but to talk to it programmatically, I needed to use its API. The common language for this? Python.

Now, my Python knowledge was zero. But again, I turned to an LLM. I described the task: "Write a Python script to send a prompt to my local Ollama API and get a response." And it worked! This was a breakthrough. I realized I could leverage my decades of application design and logic skills from Access/VBA, and use an LLM to handle the Python syntax.

The Birth of UberChatMaster
This led to a bigger idea: Why not create a single, unified web interface to interact with multiple LLMs – both my local Ollama and cloud-based ones like OpenAI's GPT models? A place where I could easily switch models, manage chat history, and have a consistent user experience. That's how UberChatMaster was born.

It's a Python Flask web application for the backend, with HTML, CSS, and JavaScript for the frontend, and it uses SQLite for database storage.
Key features currently include:

  • Connection to OpenAI's API (e.g., GPT-4o).
  • Connection to local Ollama models (e.g., Mistral).
  • Persistent chat history that provides context to the LLMs.
  • UI for selecting vendors and models.
  • Prompt templates and speech-to-text input.
  • Chat management (new chat, rename, hide, clear all).
Snapshot - UberChatMaster from Nifty ChatGPT (3 48.56) (2).png


The Revelation: I'm an "AI Application Architect," Not a Python Coder!
Building UberChatMaster has been an intense learning experience. I haven't become a traditional Python programmer overnight. Instead, I've learned to be an orchestrator. I design the system, define the features, break down the logic, prompt the LLM for code, and then critically, I test, debug, and integrate the pieces. My Access/VBA experience in structuring applications, understanding data, and user interaction has been invaluable. The LLM handles the syntax; I handle the architecture and the "does this actually work and meet the requirement?" part.

It's been challenging – LLMs can get stuck, generate buggy code, or misunderstand. I've used different LLMs (ChatGPT, Grok, and recently Google's Gemini Studio which was a huge help) at different stages. It's a very iterative process.

Why Share This with Access Developers?
I believe this AI-assisted development approach can be a game-changer for many of us. If you've ever felt limited by VBA or wanted to explore web technologies or Python utilities without facing a multi-year learning curve for a new language, LLMs offer a new path. You can leverage your existing, hard-won development and problem-solving skills.

Want to See More? (My Video Demo & Learning More)
I've actually recorded a video demonstrating UberChatMaster in action, showing how it switches between OpenAI and local Ollama, and how the chat history works.
You can watch it here:


This journey has been so fascinating that I'm considering creating a short video series specifically for developers (especially those from an Access/VBA background) on how to approach building projects like this with LLM assistance – focusing on the prompting, the mindset, the debugging, and the key concepts rather than just raw coding.
If that sounds interesting, I've set up a pre-order on Gumroad for it. The idea is if 10 people subscribe for $10, I'll go ahead and produce the series. You can find out more here: [Link to your Gumroad Pre-Order Page]

I'd love to hear your thoughts! Have any of you tried using LLMs for code generation beyond simple snippets? What have your experiences been?

Cheers,
Tony (Uncle Gizmo)
 
Last edited:
Brilliant. I love the concept. I totally agree with the idea of putting out videos on how you accomplished this.

I have, indeed, been working on a project with heavy assistance from Claude AI. My experience has been using the LLM to analyze or debug SQL Server stored procedures. I.e. I paste the SQL into the LLM and ask for suggested improvements. More than once it has identified flaws that I wasn't aware of in addition to addressing problems I was more specifically interested in.

A typical session may include an initial question or request for analysis followed by up to half a dozen iterations as I get feedback and suggestions and follow up with new questions. Along the way, I've gotten not just code but background information about the reason for the suggested changes. In particular, I've gained important insight into date handling in PowerApps and in SQL Server. Not surprisingly, there are some gotchas.

I've gone from a skeptic about AI, based on early experience, to seeing how it can become a useful assistant. In fact, one might be so bold as to suggest that AI might well stand for Assisted Intelligence.
 
Hi George,
Thanks so much for your insightful reply and for sharing your own positive experiences with using AI (Claude AI, in your case) as an "Assisted Intelligence" – I love that term! It perfectly captures how these tools can augment our existing skills and help us wear multiple hats with greater confidence.

Your journey with analysing and debugging SQL Server stored procedures with AI assistance resonates strongly with my own experiences building UberChatMaster. That iterative process of prompting, getting feedback, and refining questions is exactly how I've been working with LLMs to generate and debug the Python and JavaScript for my project. Like you, I've found they not only help with the code but also provide valuable background and insights – a real "aha!" moment was when Gemini helped me untangle a tricky Flask backend issue. It’s clear we’re both seeing that LLMs can be powerful partners in expanding our development horizons beyond our traditional comfort zones.

AP: Leveraging SQL Server Stored Procs for Access, PowerApps and other interfaces. Can it be done?
I was also particularly interested in your recent YouTube presentation on "Leveraging SQL Server Stored Procs for Access, PowerApps and other interfaces." The challenge of bringing Access data and Access application logic to web or other modern interfaces is something I've been exploring as well. It’s a fascinating puzzle trying to find the best way to maintain the RAD strengths we love in Access while moving towards web-based solutions.

Your video raised some really interesting points about the complexities and the different skill sets involved. I've been doing some thinking (and even had a fascinating chat with an AI, Grok, about potential architectures) on different ways one might approach building rich web interfaces for Access applications. For instance, Grok and I touched on ideas around frameworks like Blazor, which aim to offer a component-based UI and C# backend, potentially providing a different path to web integration for Access developers comfortable with .NET concepts.

It sounds like we're both navigating similar exciting, and sometimes challenging, new territories. Given our shared interest in extending Access's reach and our experiences with AI-assisted development, I'd be very keen to chat further with you sometime if you're open to it. Perhaps we could exchange notes on the different paths we're exploring to bring Access capabilities to a wider audience?

Brilliant work on your project and presentation, George! It’s great to see fellow Access veterans pushing the boundaries.

Cheers
Tony (Uncle Gizmo) ---- my reply was given a bit of a Polish by Gemini ---
 
Hi George,
Thanks so much for your insightful reply and for sharing your own positive experiences with using AI (Claude AI, in your case) as an "Assisted Intelligence" – I love that term! It perfectly captures how these tools can augment our existing skills and help us wear multiple hats with greater confidence.

Your journey with analysing and debugging SQL Server stored procedures with AI assistance resonates strongly with my own experiences building UberChatMaster. That iterative process of prompting, getting feedback, and refining questions is exactly how I've been working with LLMs to generate and debug the Python and JavaScript for my project. Like you, I've found they not only help with the code but also provide valuable background and insights – a real "aha!" moment was when Gemini helped me untangle a tricky Flask backend issue. It’s clear we’re both seeing that LLMs can be powerful partners in expanding our development horizons beyond our traditional comfort zones.

AP: Leveraging SQL Server Stored Procs for Access, PowerApps and other interfaces. Can it be done?
I was also particularly interested in your recent YouTube presentation on "Leveraging SQL Server Stored Procs for Access, PowerApps and other interfaces." The challenge of bringing Access data and Access application logic to web or other modern interfaces is something I've been exploring as well. It’s a fascinating puzzle trying to find the best way to maintain the RAD strengths we love in Access while moving towards web-based solutions.

Your video raised some really interesting points about the complexities and the different skill sets involved. I've been doing some thinking (and even had a fascinating chat with an AI, Grok, about potential architectures) on different ways one might approach building rich web interfaces for Access applications. For instance, Grok and I touched on ideas around frameworks like Blazor, which aim to offer a component-based UI and C# backend, potentially providing a different path to web integration for Access developers comfortable with .NET concepts.

It sounds like we're both navigating similar exciting, and sometimes challenging, new territories. Given our shared interest in extending Access's reach and our experiences with AI-assisted development, I'd be very keen to chat further with you sometime if you're open to it. Perhaps we could exchange notes on the different paths we're exploring to bring Access capabilities to a wider audience?

Brilliant work on your project and presentation, George! It’s great to see fellow Access veterans pushing the boundaries.

Cheers
Tony (Uncle Gizmo) ---- my reply was given a bit of a Polish by Gemini ---
Thanks for the kind words. I agree; we're on the verge of a whole new development paradigm that can, and should, include Access. You commented on a couple of things that resonate with me. In particular, the bridge from RAD Access to web integration without a 6-month learning cycle in between.

You refer to a lot of Web development for which I've heard terms (Flask, Python) but for which I have only limited understanding. Given your experience, though, I can see how LLM-assisted development could shorten the time needed to implement components for them. Contrary to my starting assumptions about AI, I think I would trust LLM assisted development to put me in a reasonable starting position for working with them. I hesitate to say I'd trust it as much as a fellow developer who's an expert in a specific area, but pretty darn close.

I'd love to chat more. I am sporadically on the Access Discord channel. I tend not to be there as much as I originally thought I would, but it's a good place for that. I can also do Zoom meetings.
 
This is an interesting article on why we still need programmers. We need to train people up to become programmers...


What I got from it indirectly is that when you are trained as a programmer, it's not that you can write the code, it's that you can debug it...

I realised when you learn code you don't just learn how to write a beautiful function. You also learn how easy it is for your code to fail and you enter into a bug chasing situation...

Large language models have access to the vast array of code on the internet and can use it to develop projects... But they have no idea about the skill of bug tracing!

So I think the author is right. We are going to need programmers for quite a while yet....
 

Users who are viewing this thread

Back
Top Bottom