Saber el último precio de cierre de cada uno de los valores que compone una cartera de acciones y reflejarlos en un textBox.
Estoy construyendo un formulario para que se vuelque los datos de aquellos la situación de una cartera compuesta por acciones. Es un formulario único pero al clikear en un botón comando se abre un formulario continuo.
La situación en la que estoy ahora mismo es que al disponer de la tabla (THistCompAcc) que es donde se refleja las compras realizadas, con los nombres de campos; Ticker, FechaCompra, TitulosComprados, TitulosDisponibles y PrecioUnitario (precio por unidad)
La instrucción hasta ahora está así:
Dim categ As String
Dim HistCta As String
Dim tablaCotiz As String
Dim fechaUltimaCotiz As Date
Dim sqlPosicion As String
Dim precioCierre As Double
' Validar categoría
If Not TempVars("Categoria") Is Nothing Then
categ = Trim(UCase(TempVars("Categoria").Value))
Else
MsgBox "No se ha definido la categoría en TempVars.", vbExclamation
Exit Sub
End If
' Selección de tablas según categoría
Select Case categ
Case "VALORES ACCIONES"
HistCta = "THistorCompAcc"
tablaCotiz = "TCotizAcc"
Case Else
MsgBox "Categoría no reconocida: " & categ, vbExclamation
Exit Sub
End Select
‘’’’ Creo la variable “tablaCotiz” para poder utilizarla en el caso que haya otro productos
' Última fecha de cotización
fechaUltimaCotiz = DMax("FechaCotiz", tablaCotiz)
' Consulta de posiciones con títulos disponibles
sqlPosicion = "SELECT Ticker, FechaCompra, TitulosDisponibles, PrecioUnitario " & _
"FROM " & HistCta & " " & _
"WHERE TitulosDisponibles > 0;"
' Asignar al formulario
Me.RecordSource = sqlPosicion
' Ahora, en cada registro del formulario, puedes calcular el precio de cierre con DLookup:
' Ejemplo en un control calculado:
precioCierre = DLookup("PrecioCierre", "TCotizAcc", "Ticker='" & [Ticker] & "' AND FechaCotiz=#" & Format(fechaUltimaCotiz, "yyyy-mm-dd") & "#")
' Y la ganancia/pérdida:
' =([PrecioCierre]-[PrecioUnitario])*[TitulosDisponibles]
' Calcular ganancia/pérdida
' Debug. Print rs! Ticker, (precioCierre - rs!PrecioUnitario) * rs! TitulosDisponibles
Me.TxtTicker.ControlSource = "Ticker"
Me.txtFechaCompra.ControlSource = "FechaCompra"
Me.txtTitDispon.ControlSource = "TitulosDisponibles"
Me.txtPrecioComp.ControlSource = "PrecioUnitario"
Me.txtPrecioCierre.ControlSource = "precioCierre"
' Me.txtGanPerd.ControlSource = "GananciaPerdida"
En principio, y que vea, puede haber mas errores, tengo problemas en que se plasme en el textBox correspondiente el precio de cierre de cada acción.
Le he dado vuelta al revés y al derecho y ahora mismo ya soy incapaz de vislumbrar alguna solución
