Conectar Flash con Access a traves de Mdm Zinc

In: Flash| MDM Zinc

6 Nov 2007

Ya vimos hace un tiempo como conectar Flash con Mysql a través de Zinc, pero esto nos obliga a tener conexión de internet para conectarnos al servidor o montarnos nuestro servidor en local.

A lo mejor, a la hora de hacer nuestra aplicación nos basta con tener una base de datos en access y en local, con lo que nos serviría que el cliente no tuviera conexión a internet para utilizarla.

Para este ejemplo vamos a realizar la gestión de una agenda.

Primero de todo crearemos en access una estructura como esta con id, Nombre, Apellidos y Teléfono:

Estructura de la base de datos de access

A esta tabla la llameremos "ejemplo_agenda" y a la base de datos le pondremos el mismo nombre "ejemplo_agenda.mdb". Antes de guardar todo, insertaremos unos datos en la tabla para el ejemplo.

En nuestra aplicación en flash insertaremos un DataGrid, 3 botones y 3 textinput. Al DataGrid le llamaremos "theDataGrid". Los botones "bot_editar","bot_borrar" y "bot_insertar". Y finalmente los textinput "nombre_txt","apellidos_txt" y "tlf_txt".En el escenario nos quedará una cosa como esta:

Estructura del escenario de flash

Ahora ya insertaremos una nueva capa y ahí pondremos nuestro código actionscript. Iré poniendo bloque a bloque de código para ir explicandolo.

Actionscript:
  1. var databaseFile:String = "ejemplo_agenda.mdb";
  2. var databasePassword:String = "";
  3. var path:String = mdm.Application.path+databaseFile;
  4. mdm.Database.MSAccess.connect(databaseFile,databasePassword);
  5. var success = mdm.Database.MSAccess.success();
  6. if (success == false) {
  7. var msg:String = "No se puede conectar a la bbdd";
  8. mdm.Dialogs.prompt(msg);
  9. return;
  10. }

Con ese trozo de código lo que hemos hecho es hacer la conexión con nuestra base de datos y comprobar que la conexión se ha hecho correctamente.

Actionscript:
  1. //FUNCION PARA HACER LA CONSULTA A LA BBDD
  2. function consulta(){
  3. theDataGrid.removeAll();
  4. var sqlString:String = "SELECT id,nombre,apellidos,telefono FROM ejemplo_agenda order by id asc";
  5. // Ejecutamos la consulta sql
  6. mdm.Database.MSAccess.select(sqlString);
  7. // Comprobamos los errores
  8. var error:Boolean = (mdm.Database.MSAccess.error() == "true");
  9. if (error) {
  10. var msg:String = "Ha ocurrido un error en la consulta!";
  11. mdm.Dialogs.prompt(msg);
  12. return;
  13. }
  14. //Obtenemos los datos de la consulta
  15. var dataSet:Array = mdm.Database.MSAccess.getData();
  16.  
  17. var datos:Object;
  18. var newItemsArray:Array = new Array();
  19. for (var i = 0; i<dataset.length;>
  20. datos = {};
  21. datos.ID = parseInt(dataSet[i][0]);
  22. datos.Nombre = dataSet[i][1];
  23. datos.Apellidos = dataSet[i][2];
  24. datos.Telefono = dataSet[i][3];
  25. newItemsArray.push(datos);
  26. }
  27. theDataGrid.dataProvider = newItemsArray;
  28. }

La función consulta lo que hace es una consulta a la tabla de access y vuelca su contenido en el datagrid.

Actionscript:
  1. //FUNCION PARA MONTAR EL DATAGRID
  2. function layoutGUI():Void {
  3. // Montamos el encabezado del datagrid
  4. theDataGrid.setStyle("fontSize",10);
  5. theDataGrid.columnNames = ["ID", "Nombre", "Apellidos", "Telefono"];
  6. theDataGrid.vScrollPolicy = "auto";
  7.  
  8. var gridWidth:Number = theDataGrid.width;
  9.  
  10. theDataGrid.getColumnAt(0).width = 0.05*gridWidth;
  11. theDataGrid.getColumnAt(0).headerText = "ID:";
  12.  
  13. theDataGrid.getColumnAt(1).width = 0.35*gridWidth;
  14. theDataGrid.getColumnAt(1).headerText = "Nombre:";
  15.  
  16. theDataGrid.getColumnAt(2).width = 0.45*gridWidth;
  17. theDataGrid.getColumnAt(2).headerText = "Apellidos:";
  18.  
  19. theDataGrid.getColumnAt(3).width = 0.15*gridWidth;
  20. theDataGrid.getColumnAt(3).headerText = "Telefono:";
  21.  
  22. theDataGrid.setStyle("alternatingRowColors", [0xFFFFFF, 0xF9FCFD]);
  23. }

La función layoutGUI monta la estructura del datagrid ( encabezado, ancho, alto, color de fondo, etc ).

Ahora ya simplemente nos quedan las funciones de los respectivos botones:

Actionscript:
  1. //Funcion para insertar un dato
  2. bot_insertar.onRelease=function(){
  3. if(nombre_txt.text==""){
  4. nombre_txt.text="Este campo no puede estar vacio";
  5. }else{
  6. mdm.Database.MSAccess.runQuery("INSERT INTO ejemplo_agenda (nombre,apellidos,telefono) VALUES ('"+nombre_txt.text+"','"+apellidos_txt.text+"',"+telf_txt.text+")");
  7. consulta();
  8. nombre_txt.text="";
  9. apellidos_txt.text="";
  10. telf_txt.text="";
  11. }
  12. }

Antes de insertar un dato, comprobamos que el campo nombre no esté vacio. Después de insertar los datos, llamaremos a la funcion consulta para actualizar el datagrid y limpiaremos los textinput.

Actionscript:
  1. //Borrado de datos
  2. bot_borrar.onRelease=function(){
  3. LineaGrid = theDataGrid.selectedIndex;
  4. if(LineaGrid!=undefined){
  5. var sqlString:String = "DELETE FROM ejemplo_agenda where id="+theDataGrid.getItemAt(LineaGrid).ID;
  6. mdm.Database.MSAccess.runQuery(sqlString);
  7. consulta();
  8. }
  9. }

En este trozo de código no hay mucho que explicar, simplemente hacemos el borrado si se ha elegido un dato en el datagrid.

Actionscript:
  1. //Edicion de datos
  2. theDataGrid.addEventListener("change", editar);
  3.  
  4. function editar(Obj) {
  5. bot_editar.enabled=true;
  6. //Obtiene los datos de la linea seleccionada
  7. DatosGrid = Obj.target.selectedItem;
  8. //Asigna valores de los campos de texto
  9. nombre_txt.text = DatosGrid.Nombre;
  10. apellidos_txt.text = DatosGrid.Apellidos;
  11. telf_txt.text = DatosGrid.Telefono;
  12. }
  13.  
  14. bot_editar.onRelease=function(){
  15. LineaGrid = theDataGrid.selectedIndex;
  16. var sqlString:String = "UPDATE ejemplo_agenda set nombre='"+nombre_txt.text+"', apellidos='"+apellidos_txt.text+"', telefono="+telf_txt.text+" where id="+theDataGrid.getItemAt(LineaGrid).ID;
  17. mdm.Database.MSAccess.runQuery(sqlString);
  18. consulta();
  19. bot_editar.enabled=false;
  20. nombre_txt.text = "";
  21. apellidos_txt.text = "";
  22. telf_txt.text = "";
  23. }

Para editar los datos lo que hemos hecho es ponerle un listener al datagrid para que cuando se seleccione un elemento, nos lo muestre en los textinput.

El último trozo de código que nos quedaría por poner es el siguiente:

Actionscript:
  1. bot_editar.enabled = false;
  2. layoutGUI();
  3. consulta(); //Obtenemos los datos de la bbdd

Esto son las llamadas a la funcion de montar el datagrid y obtener los datos del access.

Al haberlo explicado por trozos puede haber quedado algo lioso, ahora os pondré todo el código seguido que hemos utilizado.

Actionscript:
  1. var databaseFile:String = "ejemplo_agenda.mdb";
  2. var databasePassword:String = "";
  3. var path:String = mdm.Application.path+databaseFile;
  4. mdm.Database.MSAccess.connect(databaseFile,databasePassword);
  5. var success = mdm.Database.MSAccess.success();
  6. if (success == false) {
  7. var msg:String = "No se puede conectar a la bbdd";
  8. mdm.Dialogs.prompt(msg);
  9. return;
  10. }
  11.  
  12. //FUNCION PARA HACER LA CONSULTA A LA BBDD
  13. function consulta(){
  14. theDataGrid.removeAll();
  15. var sqlString:String = "SELECT id,nombre,apellidos,telefono FROM ejemplo_agenda order by id asc";
  16. // Ejecutamos la consulta sql
  17. mdm.Database.MSAccess.select(sqlString);
  18. // Comprobamos los errores
  19. var error:Boolean = (mdm.Database.MSAccess.error() == "true");
  20. if (error) {
  21. var msg:String = "Ha ocurrido un error en la consulta!";
  22. mdm.Dialogs.prompt(msg);
  23. return;
  24. }
  25. //Obtenemos los datos de la consulta
  26. var dataSet:Array = mdm.Database.MSAccess.getData();
  27.  
  28. var datos:Object;
  29. var newItemsArray:Array = new Array();
  30. for (var i = 0; i<dataset.length;>
  31. datos = {};
  32. datos.ID = parseInt(dataSet[i][0]);
  33. datos.Nombre = dataSet[i][1];
  34. datos.Apellidos = dataSet[i][2];
  35. datos.Telefono = dataSet[i][3];
  36. newItemsArray.push(datos);
  37. }
  38. theDataGrid.dataProvider = newItemsArray;
  39. }</dataset.length;>
  40.  
  41. //FUNCION PARA MONTAR EL DATAGRID
  42. function layoutGUI():Void {
  43. // Montamos el encabezado del datagrid
  44. theDataGrid.setStyle("fontSize",10);
  45. theDataGrid.columnNames = ["ID", "Nombre", "Apellidos", "Telefono"];
  46. theDataGrid.vScrollPolicy = "auto";
  47.  
  48. var gridWidth:Number = theDataGrid.width;
  49.  
  50. theDataGrid.getColumnAt(0).width = 0.05*gridWidth;
  51. theDataGrid.getColumnAt(0).headerText = "ID:";
  52.  
  53. theDataGrid.getColumnAt(1).width = 0.35*gridWidth;
  54. theDataGrid.getColumnAt(1).headerText = "Nombre:";
  55.  
  56. theDataGrid.getColumnAt(2).width = 0.45*gridWidth;
  57. theDataGrid.getColumnAt(2).headerText = "Apellidos:";
  58.  
  59. theDataGrid.getColumnAt(3).width = 0.15*gridWidth;
  60. theDataGrid.getColumnAt(3).headerText = "Telefono:";
  61.  
  62. theDataGrid.setStyle("alternatingRowColors", [0xFFFFFF, 0xF9FCFD]);
  63. }
  64.  
  65. //Funcion para insertar un dato
  66. bot_insertar.onRelease=function(){
  67. if(nombre_txt.text==""){
  68. nombre_txt.text="Este campo no puede estar vacio";
  69. }else{
  70. mdm.Database.MSAccess.runQuery("INSERT INTO ejemplo_agenda (nombre,apellidos,telefono) VALUES ('"+nombre_txt.text+"','"+apellidos_txt.text+"',"+telf_txt.text+")");
  71. consulta();
  72. nombre_txt.text="";
  73. apellidos_txt.text="";
  74. telf_txt.text="";
  75. }
  76. }
  77. //Borrado de datos
  78. bot_borrar.onRelease=function(){
  79. LineaGrid = theDataGrid.selectedIndex;
  80. if(LineaGrid!=undefined){
  81. var sqlString:String = "DELETE FROM ejemplo_agenda where id="+theDataGrid.getItemAt(LineaGrid).ID;
  82. mdm.Database.MSAccess.runQuery(sqlString);
  83. theDataGrid.removeItemAt(LineaGrid);
  84. consulta();
  85.  
  86. var error:Boolean = (mdm.Database.MSAccess.error() == "true");
  87. if (error) {
  88. var msg:String = "Ha ocurrido un error ejecutando la consulta";
  89. mdm.Dialogs.prompt(msg);
  90. return;
  91. }
  92. }
  93.  
  94. }
  95.  
  96. //Edicion de datos
  97. theDataGrid.addEventListener("change", editar);
  98.  
  99. function editar(Obj) {
  100. bot_editar.enabled=true;
  101. //Obtiene los datos de la linea seleccionada
  102. DatosGrid = Obj.target.selectedItem;
  103. //Asigna valores de los campos de texto
  104. nombre_txt.text = DatosGrid.Nombre;
  105. apellidos_txt.text = DatosGrid.Apellidos;
  106. telf_txt.text = DatosGrid.Telefono;
  107.  
  108. }
  109. bot_editar.onRelease=function(){
  110. LineaGrid = theDataGrid.selectedIndex;
  111. var sqlString:String = "UPDATE ejemplo_agenda set nombre='"+nombre_txt.text+"', apellidos='"+apellidos_txt.text+"', telefono="+telf_txt.text+" where id="+theDataGrid.getItemAt(LineaGrid).ID;
  112. mdm.Database.MSAccess.runQuery(sqlString);
  113. var error:Boolean = (mdm.Database.MSAccess.error() == "true");
  114. if (error) {
  115. var msg:String = "Error occured while executing sql query!";
  116. mdm.Dialogs.prompt(msg);
  117. return;
  118. }
  119. consulta();
  120. bot_editar.enabled=false;
  121. nombre_txt.text = "";
  122. apellidos_txt.text = "";
  123. telf_txt.text = "";
  124. }
  125.  
  126. bot_editar.enabled=false;
  127. layoutGUI();
  128. consulta();//Obtenemos los datos de la bbdd

Una vez hecho nuestro swf, solamente deberemos compilarlo con el mdm zinc y obtendremos nuestro ejecutable. Como nota tengo que decir que si hacemos una consulta que nos devuelve muchos registros (sobre los 150-200) puede que no funcione correctamente. En ese caso tendríamos que paginar nuestros resultados.

Este mismo tutorial lo publiqué hace ya algún tiempo en cristalab.

44 Responses to Conectar Flash con Access a traves de Mdm Zinc

Avatar

ALT

Enero 24th, 2008 at 3:04

¡Hola Juan!
He visto tu tutorial y me parece excelente. Sin embargo, en ocasiones se hace atractivo editar los campos directamente en el datagrid y de ahi guardarlos en la base de datos. ¿es factible hacer esto? ¿tendrá por ahí algún ejemplo que me puedas facilitar?.

De antemano, muchas gracias
Saludos
ALT

Avatar

Juan

Enero 24th, 2008 at 9:52

Claro que se puede, me lo anoto para hacer un ejemplo y publicarlo en cuanto pueda en la web.

Avatar

Calle Serpis » Editar un DataGrid con conexión a Access

Enero 26th, 2008 at 12:08

[...] conexión a Access Escrito por Juan – 26 Ene 2008 a las 12:08:25 | Hace un tiempo ya hice un tutorial sobre como conectar Flash con Access a través de mdm Zinc. Y en los comentarios me preguntaron si [...]

Avatar

Jozet77

Marzo 19th, 2008 at 23:17

oye pero si la base de datos no esta en el mismo directorio como cambio el path y donde lo hago……

Avatar

coda25

Septiembre 19th, 2008 at 8:21

hola, mi pregunta es, en donde pones los codigos para dar alta, editar y borrar? es dentro de los botones?

grax

atte coda25

Avatar

Juan

Septiembre 19th, 2008 at 8:56

No, es en la linea principal de tiempo.

Avatar

coda25

Septiembre 19th, 2008 at 9:35

podrias mandarme el ejemplo ya hecho? con codigo fuente a mi mail:

shadow_x20@hotmail.com

grax

atte

coda25

Avatar

Cristian

Septiembre 28th, 2008 at 19:28

buenas, les cuento mi problema.. un cliente necesitaba hacer un cd interactivo para publicidad y me paso una base acces de donde sacar los datos. a mi se me habia ocurrido hacerlo con flash que es mas atractivo visualmente. el problema surgio cuando lo quice conectar…. bueno, encontre esta forma pero tube 2 problemas: la base de datos y la tabla… tienen que tener el mismo nombre??? porque yo intente y nunca me mostro dato alguno.. y el otro problema que veo es que al ejecutar el .exe generado por el MDMZink se crea o se actualiza un archivo con el mismo nombre que la base, esto podia traer problemas ya que es para un cd (solo lectura)… alguien conoce otra forma???? o como resolver esto?? Muchas gracias!!!!

Avatar

Juan

Septiembre 28th, 2008 at 23:30

Hola, te respondo:
-El nombre de la tabla y el de la base de datos no tienen que tener el mismo nombre, yo los puse igual para simplificar el ejemplo pero no es necesario
-Si vas a acceder a un cd debes hacerlo en solo lectura por lo que debes especificarlo con la funcion “mdm.Database.MSAccess.connectReadOnly” si no, no podrás. Si accedes de otra manera te genera un archivo temporal y si es en un cd no vas a poder.

Avatar

Cristian

Octubre 1st, 2008 at 1:20

muchas gracias Juan!! voy a ver si lo logro hacer andar!!!
despues te cuento como me fue!

Avatar

Cristian

Octubre 1st, 2008 at 1:48

buenisimo che, conecto perfectamente.

una consulta mas… (y esto de curiosidad)… intente ponerle un skin a la aplicacion esta, y no me conecta a la base, se necesita algo mas para usar skin? o le estoy errando en algo?

Avatar

Juan

Octubre 1st, 2008 at 9:00

Pues no debería porque no funcionarte al ponerle el skin. Yo he hecho aplicaciones con skin y conectandose a bases de datos (mysql) y me han funcionado perfectamente.
Mira a ver si has puesto algún código sin darte cuenta.
Un saludo

Avatar

Chewika

Octubre 24th, 2008 at 0:22

Hola a todos, sobre todo muy buen trabajo Juan, mi duda tras estar mirando el programa es si es posible el compilar un swf que a su vez tenga mas swf unidos al principal, por ejemplo que el swf principal tenga menus que carguen mas swf, por ahora solo conseguí que compile uno solo, sin poder hacer la llamada a los demas swf. Por ahora los swf los estoy poniendo como MC pero me gustaría saber si es posible lo que comento.

Muchas gracias por todo.
Saludos
Jose

Avatar

Juan

Octubre 24th, 2008 at 9:07

Hola Jose, lo que tu comentas si que se puede mediante los mdm.Forms. En cada Form cargas un swf distinto y puedes comunicarte entre ellos, llamando a funciones de otros, minimizarlos, etc

Avatar

chewika

Octubre 24th, 2008 at 17:35

Muchas gracias juan, mirare esa opcion de los Forms, la verdad que estuve viendo algo de eso pero claro, solo añadia otro swf sin buen resultado, intentare profundizar en eso.

muchas gracias y un saludo
Jose

Avatar

Oscar Spencer

Noviembre 4th, 2008 at 5:12

gracias por compartir

oie estoy haciendo una aplicacion, ya casi termino,
solo me falta recuperar los datos lugar de un datagrid en un “input text” individual cada dato ¿crees que se pueda?
si puedes ayudarme te lo agradecere mucho

Avatar

Juan

Noviembre 4th, 2008 at 10:12

Claro que se puede, en vez de meter los datos en el datagrid en el bucle (lineas 30-37) debes ponerlas en el input que quieras. Por ejemplo si tu input se llama nombre_txt:

nombre_txt.text=dataSet[0][1];

Asi pondrias el primer nombre de los registros que obtengas en ese campo de texto.

Avatar

Oscar Spencer

Noviembre 4th, 2008 at 17:30

gracias juan voy a probar ….

Avatar

Oscar Spencer

Noviembre 4th, 2008 at 18:00

al intentar copilarlo con mdm v.3 aparece este error:

couldn´t locate runtime module: mdm.Database.MSAccess

(el Mismo Archivo que baje, sin mofificarlo)
creo es por la version del mdm

a que se debera juan, de antemano gracias.

Avatar

Oscar Spencer

Noviembre 4th, 2008 at 18:08

no le hagas caso a lo anterior , ya intente con otra version 3.0 y si lo copilo…

Avatar

Oscar Spencer

Noviembre 5th, 2008 at 19:14

nombre_txt.text=dataSet[0][1];

recuerdas esto , funciona, pero solamente me permite ver el primer registro .

creo que me faltaria el codigo para que dos botones “” anterior y siguiente “” para poder ver todos los registros 1 por 1

o de alguna manera ingresar el “id” en un inputtext para hacer una consulta y me muestre los datos de dicho registro.

gracias por tu ayuda, segun yo con esto ya termino el proyecto.

muchas gracias Juan

Avatar

Juan

Noviembre 6th, 2008 at 9:58

Como te dije, eso te sirve para ver el primer registro del nombre.
dataSet[i][j]

i es el numero de fila y j el numero de columna. En el datagrid los ves todos porque en un bucle vas recorriendo las filas y leyendo todos los registros. Luego los muestras en el datagrid.

Como lo quieres meter en un input text debes hacer algo como lo que dices, un boton de anterior o siguiente o algo asi.

Avatar

Edgar

Diciembre 12th, 2008 at 14:52

Hola Juan, a mi me pasa lo siguiente:
Cuando copilo con mdm v.3 aparece este error varias veces:

couldn´t locate runtime module: mdm.Database.MSAccess

Que puede ser, he visto que arriba esta el mismo comment pero yo tengo la version 3 y sigue pasandome.

GRacias.

Avatar

Juan

Diciembre 12th, 2008 at 14:55

Edgar, ¿compilas la libreria mdm.Database junto con el proyecto?
Por defecto el mdm zinc no te compila ninguna libreria y debes añadirlas tu a la hora de compilar.

Avatar

Edgar

Diciembre 12th, 2008 at 18:45

Si, la compilo, es posible que sea porque tengo windows vista? y si es asi compilandolo en XP luego funcionaria en Vista?

Edgar.

Avatar

Sergio

Marzo 8th, 2009 at 0:01

Hola juan.

te queria preguntar si a esa Datagrid se le puede añadir filtro, por ejemplo colocal un input para filtrar nombres y un combobox para filtrar telefonos. gracias

Avatar

Juan

Marzo 8th, 2009 at 13:03

Si que podrías pero deberás poner un listener en el input o en el combo para que cada vez que se cambie se actualice tu consulta sql.

Avatar

Sergio

Marzo 9th, 2009 at 23:35

Gracias juan

perdona mi ignorancia pero eso como se hace es k no soy muy experto.

te lo agradeceria bastante

Avatar

Sergio

Marzo 16th, 2009 at 1:06

Bueno al final lo hize en visual basic pk no lo pude hacer en flash (PRO TIEMPO NADA MAS) es que tenia que entregarlo rapido pero… esta buenisima esta herramienta de flash. voy a meterme mas en el asunto.

gracias…

Avatar

Siver_Gos

Marzo 26th, 2009 at 4:20

hola, lo que quiero es saber si se puede conectar una miltimedia desarrollada en flash con un gestor de base de datos y de ser posible que e digancomo por favor que estoy medio enrredaooo, porque es para la tesis de grado mia chaoooooo deser posible me responden a mi e-mail yoandy.dominguez@reduc.edu.cu gracias

Avatar

Alejandro

Mayo 29th, 2009 at 16:40

Hola Juan es posible que me envies tu ejemplo?…te dejo mi mail alejandro_a25@hotmail.com te lo agradeceria inmensamente amigo. Adios

Avatar

Juan

Mayo 30th, 2009 at 12:17

El ejemplo lo puedes hacer facilmente, aún así lo puedes descargar de cristalab.com, el enlace está en este mismo post.

Avatar

cessy

Junio 12th, 2009 at 23:10

hola Juan, el mismo problema con los anteriores: el error del runtime(couldn´t locate runtime module: mdm.Database.MSAccess)y depaso estoy en un proyecto de cd interactivo pero son swishmax, sorry pero no tengo idea de que liberias debo añadir, porfis si me pueden ayudar ya que es mi 1era ves en esto, muchas gracias.

Avatar

Fernando

Octubre 2nd, 2009 at 12:43

Hola Juan.. soy re nuevo en todo esto.. puse todo tal cual lo describiste y funciono de 10… Aprendi mucho gracis a vos… el unico temas es el siguiente.. cual seria el código que deberia colocar en la linea 3 si la base de datos esta en otro directorio?, por ejemplo en un directorio especifico en otra maquina en LAN.
muchas gracias saludos

Avatar

Manuel

Octubre 2nd, 2009 at 18:31

Saludos Juan, estoy montando un datagrid utilizando la informacion de este post, que esta excelente, ya lo tengo funcionando. Pero me gustaria que de acuerdo al valor de una celda esa fila tome un color de fondo especifico. Tienes alguna sugerencia? Navegando en la web encontre esto, pero no se como adaptarlo:

contact_ds.addEventListener(“afterLoaded”, Delegate.create(this, cambiarColorFila));
function cambiarColorFila():Void {
var dataProvider:Array = contact_ds.items;
var len:Number = dataProvider.length;
for (var i:Number = 0; i<len; i++) {
var currentValue:String = dataProvider[i].cliente;
var found:String = “true”;

if (found == currentValue) {
contact_dg.setPropertiesAt(i, {backgroundColor:0xFFE1C4});

}

}
}

Aqui el enlace para quien lo quiera:
http://www.after-hours.org/foro/viewtopic.php?t=9172&sid=6362436b61b5e1d6e23c9b81a4a8022e

Avatar

Juan

Octubre 2nd, 2009 at 18:39

[fernando]En la ayuda de mdm zinc te lo explican:

//Connects to database on a Network:
mdm.Database.MSAccess.connectAbs(“\\\\myserver\\myfolder\\myDB.mdb”, “”);

[manuel]Ahora mismo no te puedo ayudar, pero te recomiendo que lo preguntes en cristalab.com. Ahí te sabrán solucionar el problema sin ninguna duda

Avatar

Manuel

Octubre 2nd, 2009 at 19:02

Ok. Gracias, estare por alla entonces

Avatar

Fernando

Octubre 3rd, 2009 at 2:22

Otra vez muchisimas gracias… funcionó perfectamente saludos

Avatar

Manuel

Octubre 16th, 2009 at 2:06

Juan, nuevamente un gran saludo, la verdad estuve posteando varias preguntas en cristalab o forosdelweb y la verdad no me dieron respuesta a ninguna, la verdad con el metodo de ensayo y error he logrado solventar varias de las incognitas, pero sigo varado en lo que se refiere al cambio de color de fila del datagrid de acuerdo al valor de uno de sus campos.

Estoy usando esta funcion:

dataSet.addEventListener(”afterLoaded”, Delegate.create(this, cambiarColorFila));
function cambiarColorFila():Void {
var dataProvider:Array = dataSet.items;
var len:Number = dataProvider.length;
for (var i:Number = 0; i<len; i++) {
var currentValue:String = dataProvider[i].Est;
var found:String = “true”;

if (found == currentValue) {
theDataGrid.setPropertiesAt(i, {backgroundColor:0xFFE1C4});

}

}
}

Aunque no he conseguido mucha informacion de la propiedad addEventListener he tratado varias cosas. Pero ya llevo un par de semanas y no logro nada. De verdad te agradezco cuando puedas le des un vistazo. Mucho te agradezco cualquier consejo.

Avatar

carla

Diciembre 11th, 2009 at 19:33

cómo hago para poder ejecutar el exe generado desde un cd? o sino como hago el instalador?

Avatar

xiyo

Enero 13th, 2010 at 7:33

El tutorial es muy bueno, cuando lo vi lo probe pero debido a la complejidad no le entendi …varios meses despues y con la calma de una tortuga verifique el tuto… primero… no hay que desesperar al momento de programar y dejen al final lo bonito que se verian los formularios… hay que revisar el codigo una y otra vez e ir aplicandolo poco a poco hasta terminar el proyector flash.

mdm.Database es un error de principiante desesperado… solo hay que seleccionar que compile el agregado en el programa… y si tambien funciona en la version 3…

cuando hacemos nuestras propias aplicaciones hay que revisar los nombres y las comillas que lleve el codigo si no no va a funcionar algo que hayamos borrado…

creo que los mas avanzados trataran de hacer mejoras a este codigo… que esta muy bueno… y ojo es sencillo ….

gracias por el tutorial

Avatar

daniel

Febrero 25th, 2010 at 23:32

Hay alguna forma de recuperar las imágenes contenidas en el campo blob de access?.
Gracias
Daniel

Avatar

Hector

Marzo 8th, 2010 at 19:19

Me encanto el tutorial…es lo mas cercano que he encontrado a lo que necesito.

Ojala pudieras ayudarme. Seria posible colocar un boton de busqueda por criterios? por ejemplo, buscar en la base de datos todos los nombres que empiecen por… o listar los telefonos y nombres donde los apellidos esten entre A-J…etc?????

algo como SELECT * from ejemplo_agenda order by id asc WHERE nombre=Pepito

se entiende????

Modifique el codigo y me funciono como criterio de busqueda…pero quiero poner algo como botones, o menu/list para elegir listar los resultados

Te lo agradeceria INMENSAMENTE si me pudieras ayudar…y de Nuevo…MUCHISIMAS GRACIAS por el ejemplo

Avatar

Pablo

Abril 30th, 2010 at 22:49

Hola Juan, mira haber si me puedes ayudar con un problema que tengo, cuando compilo el .swf con el MDM zinc y abro el .exe me salta el siguiente error, “Cannot performing this operation on a closed dataset ( no arguments given )” ya no se que hacer, he provado con todo pero el error sige saliendo, agradecería mucho tu ayuda, Saludos.

Comment Form

Bienvenidos

Photostream

    IMAG0015IMAG0016IMAG0009IMAG0003IMAG0005Cactus nuevo