Try this is code behind you command button, I think I have changed to suit , but just give it a quick look over please.
Sometimes the problem is that you have created a new record (filled in the form) and because you have not closed and re-opened the form or you have not moved to another record and then back the record has not been saved.
This code works fine for me in several db's, when you get it working then enter you own error coding.
Dim StrCriterion As String
Dim strMsg As String, strTitle As String
Dim intStyle As Integer
'Check to see if the record is blank.
If IsNull(Me![MID]) Then
strMsg = "You cannot Print a Blank Form !!."
strTitle = "Label Print Error"
intStyle = vbOKOnly
MsgBox strMsg, intStyle, strTitle
' If the record is not blank then it saves it, also when you have just created a new record and try and print it
' it will not have been "saved" so this will do it.
If Me.Dirty Then
Me.Dirty = False
' This will establish the link, and print the report.