Lo que necesito es obtener el numero mximo de una base de datos para despus llenar un campo con ese dato.
Esta es de la manera que estoy intentado hacerlo:
Dim locConsecutivo As RecordSet
locConsecutivo = mDb.SQLSelect(“Select IsNull(Max(Nombre),1) from mc006”)
fldNumero.Text = locConsecutivo
Tengo entendido que la funcin SQLSelect devuelve un valor, que debe de ser de tipo RecordSet, y los campos de texto no pueden trabajar con este tipo de campos.
bien OScar,
no entendi bien lo de el maximo de una base de datos.
Respecto a tu codigo… tu variable recordset cuanta con los valores del Select, pero debes especificar de que campo o que campo quieres obtener la informacion, entonces…
fldNumero.Text = locConsecutivo.IdxField(1).StringValue ’ si es cadena
fldNumero.Text = locConsecutivo.IdxField(1).IntegerValue ’ si es numero
idxField(1) te indica el campo a leer, en este caso tu unico campo que consultaste.
.stringvalue o .integervalue te indica como va a devolver el valor, indpendientemente que tu campo sea integer o varchar, etc… solo se devuelve el valor en el tipo de dato especificado.
Te puedo ayudar mas si me indicas si tu base de datos es slite, mssql, mysql, etc…
locConsecutivo = mDb.SQLSelect(“Select IsNull(Max(Nombre),1) from mc006”)
| | |
recodset base de datos MS SQL tabla
Entonces…
locConsecutivo = mDb.SQLSelect(“Select Max(Numero) from Estados”)
msgbox locConsecutivo.IdxField(1).StringValue ’ te debe mostrar el maximo del campo numero
la Exception es por que… tu ya tienes una conexion con tu base de datos en “mDb” y en la consulta como no encuentra la tabla mc006 te manda nilobjectexception
y para controlar este error basta con comparar tu recordset:
if locConsecutivo.EOF then ’ si es Fin de archivo (End Of Field)
’ aqui va tu codigo cuando no encuentra nada en tu consulta o registro buscado
else
’ aqui va tu codigo con los resultados encontrados en tu consulta
end if