Cita:
Iniciado por lucy_D
... y se alacena en la tabla de la base de datos en la primera celda ...
No comprendo, las bases de datos almacenan datos en filas o registros, en cada uno de estos hay varios campos, no tengo ni idea que puede significar 'celda' en un contexto que no sea Excel u Hoja Electrónica u otros.
Cita:
Iniciado por lucy_D
... que sea consecutivo el 90000647,90000648,90000649 etc.. con las dos iniciales al principio que son "SF" ...
Posiblemente te sea de alguna ayuda,
Código:
Option Explicit
Private Sub Application_NewMail()
Call Process
End Sub
Private Sub Process()
Debug.Print "Processing new mail ..."
Dim objDatabase As New ADODB.Connection
Dim objRecordset As New ADODB.Recordset
Dim objCommand As New ADODB.Command
Dim strLastValue As String
On Error GoTo eHand
objDatabase.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\data.mdb;Persist Security Info=False"
objRecordset.Open "SELECT TOP 1 IDMessage FROM Tabla1 ORDER BY IDMessage DESC", objDatabase, adOpenStatic, adLockReadOnly
strLastValue = "SF90000647"
If Not objRecordset.EOF Then
objRecordset.MoveFirst
strLastValue = objRecordset.Fields("IDMessage")
End If
strLastValue = SiguienteFolio(strLastValue)
Debug.Print "Folio : " & strLastValue
objCommand.ActiveConnection = objDatabase
objCommand.CommandText = "INSERT INTO Tabla1 (IDMessage, Message) VALUES (""" & strLastValue & """, ""Mensaje"")"
objCommand.CommandType = adCmdText
objCommand.Execute
objRecordset.Close
objDatabase.Close
Set objRecordset = Nothing
Set objDatabase = Nothing
Debug.Print "... done."
Exit Sub
eHand:
Debug.Print "Ha ocurrido un error al procesar el mensaje de correo." & vbCrLf & _
Err.Number & " : " & Err.Description
End Sub
Function SiguienteFolio(Numero)
Dim str, num
str = Mid(Numero, 1, 2)
num = CLng(Mid(Numero, 3))
SiguienteFolio = str & (num + 1)
End Function
El macro abre una base de datos de
Access busca el último folio guardado en una tabla denominada
Tabla1 con dos campos
IDMessage, Message, le aumenta el índice en 1, y guarda un
nuevo registro con el nuevo ID.
Problema: funciona porque el SF90000647 tiene SF9 al principio si fuera SF001 el siguiente ID sería SF2, debes acomodarlo a las necesidades específicas. Si tienes alguna duda busca información en MSDN.
Saludos,