You can loop through all of the files in a folder using the Dir function.
That will give you the name of each of the files, and you can then use
TransferText to import each table.
Dim strFolder As String
Dim strFile As String
Dim strTable As String
strFolder = "C:\Some Folder\"
strFile = Dir(strFolder & "*.csv")
Do While Len(strFile) > 0
' Strip the .csv from the end of the file name
strTable = UCase(Left$(strFile, Len(strFile) - 4)
DoCmd.TransferText acImportDelim,, strTable, _
strFolder & strFile, True
strFile = Dir()
Loop
The "True" at the end of the TransferText statement assumes that each file
has the field names as the first row.
Note, though, that this is an EXTREMELY unusual thing to have to do. I can't
imagine any legitimate case where you'd be creating 3000 different tables in
an application in this way. What are the 3000 tables? Should they actually
be in a single table, with an additional field in the table representing the
source?