Si bien es cierto que se puede hacer con Python u otro Front End, le dejo la forma de hacerlo con VBA desde Access.
Pasos para crear un archivo .BAT para hacer respaldo de la base de datos de Postgres desde Access
1. Para evitar que al ejecutar el .bat pregunte el Password de la base de datos se debe incluir (si no existe) el archivo
pgpass.conf
Este archivo debe alojarse en:
C:\Users\Eduardo Perez\AppData\Roaming\postgresql
En donde \Eduaro Perez es el usuario administrador del PC
Si no existe la carpeta postgresql se debe crear, en ésta se debe alojar el archivo pgpass. Conf.
2. Creación del archivo pgpass. Conf
Puede hacerlo con el bloc de notas. Ingresar:
Localhost:5432:data_tpv:postgres:mipassword en donde:
Localhost= Es el servidor (puede variar si está en otra dirección IP)
5432 = Es el puerto del servidor
data_tpv= Nombre de la base de datos
mipassword = Contraseña del servidor
3. Creando el archivo .bat
@echo off
rem Debe estar configurado el archivo pgpass.conf para que no pida clave
TITLE COPIA DE RESPALDO MIBASEDATOS
set mifecha=%date:~5,2%%date:~8,2%%date:~11,4%
rem echo %mifecha%
c:
cd\Program Files\PostgreSQL\10\bin
pg_dump.exe -h localhost -p 5432 -U postgres -F c -v -d data_tpv -f D:\PuntoVenta\Backups\data_tpv_%mifecha%.backup
cls
echo BACKUP COMPLETO!!
pause
Explicación:
cd\Program Files\PostgreSQL\10\bin ---> cambie el 10 por la ruta de los binarios, puede ser 11,16,17
data_tpv -f D:\PuntoVenta\Backups\data_tpv_%mifecha%.backup ---> cambie D:\PuntoVenta\Backups por la ruta donde alojará el backup
y cambie data_tpv por el nombre de su base de datos a respaldar.
4. Crear una función para ejeuctar el archivo .bat
Public Function respaldo()
Dim mibat As String
If MsgBox("Está seguro. Se van a cerrar todos los formularios abiertos", vbQuestion + vbYesNo + vbDefaultButton2, "SIFACAR") = vbNo Then
Exit Function
Else
Dim I As Integer
Dim FAbiertos As Integer
FAbiertos = Forms.Count - 1
For I = FAbiertos To 0 Step -1
DoCmd.Close acForm, Forms(I).NAME
Next
End If
mibat = "\respaldo_MIBASEDATOS_win10.bat"
Shell (CurrentProject.Path & mibat), vbNormalFocus
End Function
El código es para crear el respaldo en Wndows 10 y 11.