To create a logical backup is a simple SQL command. So you can use ADO or DAO connections or even run with sqlcmd
(command line tool that ships with SQL Server installation). Backup paths below change by the date with suffix in filename. Adjust paths and connection strings accordingly.
ADO
Dim conn As ADODB.Connection
Dim today As String, strConn As String, strSQL As String
today = Format(Date, "YYYYY_MM_DD")
strConn = "Driver={ODBC Driver 17 for SQL Server};" _
& "Server=localhost;" _
& "Database=myDatabase;" _
& "Trusted_Connections=yes"
strSQL = "BACKUP DATABASE myDatabase " _
& "TO DISK = 'C:\Desired\Path\myDatabase_" & today &".bak';"
Set conn = New ADODB.Connection
conn.Open strConn
conn.Execute strSQL
conn.Close
Set conn = Nothing
DAO
Dim qdef As DAO.QueryDef
Dim today As String, strConn As String, strSQL As String
today = Format(Date, "YYYYY_MM_DD")
strConn = "Driver={ODBC Driver 17 for SQL Server};" _
& "Server=localhost;" _
& "Database=myDatabase;" _
& "Trusted_Connections=yes"
strSQL = "BACKUP DATABASE myDatabase " _
& "TO DISK = 'C:\Desired\Path\myDatabase_" & today &".bak';"
Set qdef = CurrentDb.CreateQueryDef("")
qdef.Connect = "ODBC;" & strConn
qdef.SQL = strSQL
qdef.ReturnsRecords = False
qdef.Execute
Set qdef = Nothing
Shell (calling sqlcmd)
Dim retVal As Variant
Dim today As String, strCMD As String, strSQL
today = Format(Date, "YYYYY_MM_DD")
strSQL = "BACKUP DATABASE myDatabase " _
& "TO DISK = 'C:\Desired\Path\myDatabase_" & today &".bak';"
strCMD = "sqlcmd -S localhost -d myDatabase -E -q """ & strSQL & """"
retVal = Shell(strCMD, vbNormalFocus)
Set shell = Nothing