Hola me temo que SetWindowLong no funciona, si bien le pone todos los bordes y los box no funciona la cruz de cerrar X, si no me equivoco el data report funciona distinto a otras ventanas ya que el mismo reporte es un child de otra ventana y al setearle bordestyle = 0 este no crea la ventana padre,entonces creo que la solución mas pronta seria hacer un formulario vacio y haces un set parent a este formulario.
Prueva de ello
Option Explicit
Private Const WS_OVERLAPPED As Long = &H0&
Private Const WS_CAPTION As Long = &HC00000
Private Const WS_BORDER As Long = &H800000
Private Const WS_SYSMENU As Long = &H80000
Private Const WS_THICKFRAME As Long = &H40000
Private Const WS_MINIMIZEBOX As Long = &H20000
Private Const WS_MAXIMIZEBOX As Long = &H10000
Private Const WS_CLIPSIBLINGS As Long = &H4000000
Private Const WS_VISIBLE As Long = &H10000000
Private Const WS_OVERLAPPEDWINDOW As Long = (WS_OVERLAPPED Or WS_CAPTION Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX)
Private Const WS_TILEDWINDOW As Long = WS_OVERLAPPEDWINDOW
Private Const WS_EX_APPWINDOW As Long = &H40000
Private Const WS_EX_WINDOWEDGE As Long = &H100&
Private Const GWL_EXSTYLE As Long = -20
Private Const GWL_STYLE As Long = -16
Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetWindowPos Lib "user32.dll" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const SWP_NOMOVE As Long = &H2
Private Const HWND_TOPMOST As Long = -1
Private Const SWP_NOSIZE As Long = &H1
Private Const SWP_SHOWWINDOW As Long = &H40
Private Const SWP_FRAMECHANGED As Long = &H20
Private Const SWP_HIDEWINDOW As Long = &H80
Private Const SWP_NOACTIVATE As Long = &H10
Private Sub Form_Load()
SetWindowLong DataReport1.hwnd, GWL_STYLE, GetWindowLong(DataReport1.hwnd, GWL_STYLE) Or WS_TILEDWINDOW Or WS_CLIPSIBLINGS
SetWindowLong DataReport1.hwnd, GWL_EXSTYLE, GetWindowLong(DataReport1.hwnd, GWL_EXSTYLE) Or WS_EX_APPWINDOW Or WS_EX_WINDOWEDGE
SetWindowPos DataReport1.hwnd, 0, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_FRAMECHANGED
DataReport1.Show
End Sub
otra opcion quizas es sublcasificar para detectar cuando se hace clic en el cerrar, pero bueno se va complicndo la cosa.
Saludos.