OK, no hay absolutamente ningún buen artículo en Internet que pueda encontrar que explique o tenga ejemplos de código sobre cómo crear un gráfico dinámico usando VBA. Necesito esto porque necesito el cuadro de pivote para mostrar diferentes resultados dependiendo de la selección del usuario en un formulario. Hay algunos para Excel, pero la sintaxis es diferente para Access. Sé que esta es una pregunta difícil, pero si alguien tiene un ejemplo de cómo crear un gráfico dinámico en VBA, realmente agradecería la ayuda.Creación de gráfico de pivote utilizando Access 2007 VBA
Respuesta
Bien después de aproximadamente 3 días de búsqueda creo que lo encontré. No es que a nadie realmente le importe, esto solo tiene 6 puntos de vista, dice mucho sobre la total horribleidad de VBA. De todos modos, MSDN tenía esto oculto bajo "Office XP" en lugar de bajo Access, pero lo que sea.
He crear un formulario de gráfico dinámico en Access 2007. En otra forma tengo los controles de selección de usuarios y la pivotform como un subformulario. Luego utilizo un código como este en la forma principal. El modelo de objetos es el mismo que OWC11 (Office Web Components 11).
Private Function DisplayChart()
With mysubform.Form.ChartSpace
.Clear
.AllowFiltering = True
.HasChartSpaceTitle = True
.ChartSpaceTitle.Caption = "test"
.DisplayFieldButtons = False
.DisplayToolbar = False
.ConnectionString = ...
.CommandText = "SELECT rSeries, rCategory, rDate, rValue " & _
"FROM myTable"
.Charts(0).Type = chChartTypePie
.SetData chDimSeriesNames, chDataBound, "rSeries"
.SetData chDimCategories, chDataBound, "rCategory"
.SetData chDimValues, chDataBound, "rValue"
.HasChartSpaceLegend = True
End With
End Function
las constantes se pueden derivar de OWC11
C: \ Shared Web Components Archivos de programa \ Archivos comunes \ Microsoft \ \ 11 \ owc11.dll
que los necesite en la parte superior de la módulo. En esta etapa, no estoy seguro de cómo extraerlos del panel de acceso. Haga una referencia a OWC11 y establezca el subformulario ChartSpace en una variable declarada como OWC11.ChartSpace. Después de escribir el código, cambie para escribir 'Objeto' y elimine la referencia de enlace tardío (y vuelva a probar). De esta forma, sus refs no se despegarán en una máquina de 64 bits cuando implemente.
Private Enum ChartConstants
chDimSeriesNames = 0
chDimCategories = 1
chDimValues = 2
chDataBound = 0
chAxisPositionValue = -8
chAxisPositionCategory = -7
chChartTypePie = 18
End Enum
Recuerde que también puede permitir que el usuario tenga acceso al formulario de propiedades del gráfico dinámico, las listas de campos y las zonas de colocación. O pueden hacer clic con el botón derecho en el gráfico para llegar a ellos.
(Nota - esto sigue siendo un nuevo descubrimiento para mí, así que trataré de actualizar esta respuesta si encuentro alguna gotcha.)
aquí hay un artículo de Mike Gunderloy usando los gráficos vba en A2002 http://msdn.microsoft.com/en-us/library/aa155735%28office.10%29.aspx –
- 1. Creación de cadenas SQL en Access/VBA
- 2. Creación de tablas DDL de Microsoft Access
- 3. MS Access sin VBA?
- 4. ComboBox.value en Access VBA
- 5. ¿Hay alguna manera de obtener IntelliSense completo para VBA en Access y Excel 2007?
- 6. ¿Cómo se muestra el cuadro de diálogo "Abrir archivo" en Access 2007 VBA?
- 7. VBA + Hilos en MS Access
- 8. ¿Funciona EntityFramework contra Access 2007 db (.accdb)?
- 9. Crear vista en MS Access 2007
- 10. MS Access 2007 JOIN en múltiples campos
- 11. C# Cómo conectar a MS Access 2007
- 12. MS-Access, VBA y manejo de errores
- 13. hoja de cálculo de Excel de consulta en MS-Access VBA (utilizando conjunto de registros ADODB)
- 14. VBA cambia Excel 2002 -> Excel 2007
- 15. ¿Cómo obtengo un nombre de archivo único de un objeto de diálogo de archivo en VBA (para MS Access 2007)?
- 16. Separación de etiqueta/Texbox en formularios de Microsoft Access 2007
- 17. Obtener un valor de texto de un formulario en Access utilizando un módulo de VBA
- 18. Límite de tamaño de matriz VBA de Excel 2007
- 19. MS Access: ejecuta una consulta guardada por nombre en VBA
- 20. Escribiendo Excel VBA para recibir datos de Access
- 21. Enlazar un cuadro combinado de formulario en Access 2007
- 22. Conectar Access 2007 a SQL Server 2008 Base de datos
- 23. ¿Por qué mi VBA para MS Access es Buggy?
- 24. Expresiones regulares en MS Access VBA?
- 25. VBA - Generar archivo de Excel desde Access (QueryTable)
- 26. Creación mediante programación de hojas de Excel 2007
- 27. Cómo actualizar automáticamente la aplicación MS-Access 2007
- 28. Autonumérico valor de la última fila insertada - MS Access/VBA
- 29. ¿Cómo ser productivo en el desarrollo de Access VBA + SQL?
- 30. ¿Cómo puedo encontrar el valor de color de relleno de una celda con formato condicional en Excel 2007 utilizando VBA?
sólo dice algo acerca de la facilidad de uso de gráficos en Access, donde no han habido Problemas importantes para integrar MS Graph en 1996. Por lo tanto, muchos desarrolladores avanzados de Access lo evitan. Las tablas pivote no existían hasta A2003, y recuerdo que las personas tienen problemas para hacer que funcionen. –