ms-access - varias - generar word desde access
División y exportación de múltiples tablas desde MS Access (1)
El código a continuación lo hará. Creé un DB con la estructura a continuación. Muestra archivos CSV con nombres en el formato "{Franchise_Name} {Customers} .csv", por ejemplo, "Franchise A Customers.csv".
Su descripción parecía indicar que estaba guardando nombres de franquicia en la tabla de clientes, mientras que sería mejor tener una tabla separada que contenga los nombres de las franquicias y una clave externa en la tabla Clientes que hace referencia a la clave principal en las franquicias. mesa. Aún así, podría modificar este código para que funcione con su estructura implícita, pero igual tendría que crear una lista distinta de nombres de franquicia (es decir, su conjunto de registros sería Set Franchises = CurrentDb.OpenRecordset("SELECT DISTINCT Franchise FROM Customers")
y modificaría mis referencias a FranchiseID para trabajar en su campo de franquicia.
Tabla de clientes
ID | Customer_Name | FranchiseID
1 | Customer 1 | 1
2 | Customer 2 | 2
3 | Customer 3 | 1
4 | Customer 4 | 2
5 | Customer 5 | 3
Tabla de franquicias
ID | Franchise_Name
1 | Franchise A
2 | Franchise B
3 | Franchise C
Código VBA
Option Compare Database
Option Explicit
Sub Export_Franchise_Customers()
Dim Franchises As Recordset
Dim FranchiseID As Integer
Dim Franchise_Name As String
Dim Base_SQL As String
Dim QueryDefName As String
Base_SQL = "SELECT * FROM Customers WHERE FranchiseID = "
Set Franchises = CurrentDb.OpenRecordset("Franchises")
Do While Not Franchises.EOF
FranchiseID = Franchises("ID")
Franchise_Name = Franchises("Franchise_Name")
QueryDefName = "get_Franchise" & FranchiseID & "_Customers"
CurrentDb.CreateQueryDef QueryDefName, Base_SQL & FranchiseID
DoCmd.TransferText TransferType:=acExportDelim, TableName:=QueryDefName, FileName:=Franchise_Name & " Customers.csv", HasFieldNames:=True
CurrentDb.QueryDefs.Delete QueryDefName
Franchises.MoveNext
Loop
End Sub
Espero que haya una respuesta bastante fácil a esta pregunta. Quizás usando VB.
Tengo una tabla de acceso llamada ''clientes''. Cada cliente tiene un nombre de franquicia asignado en una columna llamada ''franquicia'' en esta tabla. Necesito proporcionar a todas las franquicias un archivo csv que contenga todos los clientes asignados en su franquicia de la tabla de clientes.
El camino sin fin sería una consulta individual para cada franquicia (seleccione * del cliente donde franquicia = ''Nueva York''), pero hay más de 50 nombres de franquicia diferentes. Y exportar cada una de las consultas, una por una, consumiría mucho tiempo.
¿Hay algún código vb para crear múltiples consultas o tablas basadas en el valor de un campo?
Gracias