Visual Basic Foro

Programación => Bases de Datos => Mensaje iniciado por: fernandos85al@hotmail.com en Febrero 16, 2011, 05:48:56 pm

Título: otra vez SQLLLLL...
Publicado por: fernandos85al@hotmail.com en Febrero 16, 2011, 05:48:56 pm
Hola gente, tengo un programita, en el cual voy agregando alumnos, con sus datos a una base de access, uso sql.

Código: [Seleccionar]
Dim cnn as adodb.connection
Dim rs as adodb.recordset
Private sub form1_load()
Set Cnn = New ADODB.Connection
Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ARCHIV~1\COLEGIO\BASE\COLEGIO.MDB;Persist Security Info=False; Jet OLEDB:Database Password = COLEGIO"
Cnn.Open
Set rs = New ADODB.Recordset

'Al iniciar el formulario realiza una consulta para averiguar el ultimo IdAlumno cargado

UltimoIdAlumnos="Select Max (IdAlumnos) from datos"
txtIdAlumnos.text =rs(0)  'Cuadro de text que contiene y muestra el Ultimo IdAlumno

End sub


Puedo cargar alumnos con sus datos, pero para ingresar uno nuevo, antes obtengo el Id anterior y le sumo 1. Ejemplo: Si el ultimo IdAlumno era 10, le sumo 1 y me queda en 11.
El problema que le encontre, despues de varios intentos excitosos, jeje, es que ahora parece que solo me reconoce como ultimo Id al 9, no puedo cargar mas del 9 al iniciar el formulario, con lo cual, al existir ese ID, no me deja agregar un nuevo alumno.


Lo hice de esta manera, ya que en otra tabla aparte, ingreso los Ids, notas y otros datos, y las vinculo mediante Inner join, lo cual me ha traido muchos dolores de cabeza( si el Id es autonumerico en la tabla)..


y otra duda..


siguendo con el ejemplo anterior..

quiero imprimir por ejemplo la libreta de calificaciones del alumno, juan, perez, DNI:26.XXX.XXX, vinculo las tablas necesarias, o simplemente con alguna tabla determinada..
una vez que tengo todos los datos de las consultas, configuro una hoja, por ejemplo A4, MARGENES, ETC..

Y USO EL OBJETO PRINTER JUNTO A LINE

PRINTER.LINE (200,120)-(0,250)

LO QUE ESTUVE TRATANDO DE HACER ES UNA ESPECIE DE GRILLA, O TABLA AL ESTILO DE WORD, QUIERO QUE SALGA EN PAPEL.. UNA SOLA VEZ ME RESULTO TODO BIEN, DESPUES LA IMPRESORA COMENZO A LARGAR CIENTOS DE HOJAS EN BLANCO..


ESTA LOCA.. O YO SOY EL BRUTO, JEJE..


EN FIN ESO SOLO ES LO QUE ME TRAE PENSANDO

MIL GRACIAS ANTICIPAS, ESTOY TERMINANDO ALGUNOS APORTES PARA ESTE FORO, QUE DENTRO DE POCO, SI DIOS QUIERE Y SI SE PUEDE DEJO PARA COMPARTIRLES, PARA DEVOLVER ALGO DE LO QUE OBTENGO DEL FORO Y SU GENTE!!!!

SALUDOS
Título: Re:otra vez SQLLLLL...
Publicado por: YAcosta en Febrero 16, 2011, 05:57:28 pm
¿Para que obtienes el id anterior y le sumas 1? Deja que esa chamba la haga el motor. Ya que trabajas con Access pon tu campo Id en autonumerico.

Sobre la impresion, ya que usas el objeto Printer mejor postea tu codigo o zipealo para descargarlo y probarlo y darte la fija.
Título: Re:otra vez SQLLLLL...
Publicado por: fernandos85al@hotmail.com en Febrero 16, 2011, 06:09:21 pm
MIL GRACIAS QUE RAPIDEZ!!! HAGO UN INTENTO MAS, SI ME SIGUE CON  LO MISMO DEJO EL CODIGO PARA VER SI HAY SOLUCION, JEJE..

VOY A VOLVER A DEJAR EN AUTONUMERICO, COMO DICES, ES LA MEJOR OPCION Y ME EVITO ESCRIBIR CODIGO  ;D,


MIL GRACIAS YVANB


SALUDOS
Título: Re:otra vez SQLLLLL...
Publicado por: wolf_kof en Febrero 16, 2011, 07:41:08 pm
yo tuve el mismo problema y opte por lo siguiente (creo que ya lo explique en otro post) hago una tabla contador y un campo cualquiera con formato numero entero y solo digo que valla a buscar el campo que le sume 1 y que lo guarde!!!!! talvez te ayuda
Título: Re:otra vez SQLLLLL...
Publicado por: ssccaann43 en Febrero 17, 2011, 10:27:07 am
Wolf, lo mejor es dejar que la BD en la tabla  use su Indice Autonumerico y ya...! El solo se encarga de enviar la información correspondiente al resto de los campos..! Más nada..!