Has someone seen my bag?
Has anyone seen my bag?
Which one is grammatically correct and Why?
Which one should I use at this place?
Can you give some more examples?
Agree with pmusser - they're both correct.
However any is a Negative Polarity Item, whereas some is not. Also, when you say "Has someone seen my bag" you actually mean at least one from the group has seen your bag. On the other hand, "Has anyone seen my bag" is a general addressing.
To make 'someone/anyone' clearer, think about these sentences -
Someone can do it - at least one person can do it.
Anyone can do it - any person (or better everyone) can do it.
More examples as you asked are here. See Travis' answer in the same, which says:
In my opinion, the big difference between "someone" and "anyone" is that "someone" refers to some person, and that person is specific, even though it may not be known, while "anyone" refers to some person, and all people are equally interchangeable as said individual.
They're both grammatically correct, but you're more likely to hear, "has anyone seen my bag?" since a person would be more likely to ask it as a general question to a group of people.
You mine use "someone" if, say, you were asking for specifics or amplifying information. For example, suppose your child goes missing. After a few days, the police call you to come to the police station; your first words on the telephone or in person might be, "has someone found my son?"
I was taught by some British textbook >20 years ago that "some" is used for positive statements and "any" is used for negative statements and questions, so always:
Has anyone seen my bag? - Always use any in a question
I don't think anyone has seen your bag. - Negative statement, pretty straightforward.
However, my memory could be a little hazy about the specific definition. I think what might have been intended in that textbook, and what makes the most sense is, to use "any" for questions where the "target" of the question is being prefixed by "some"/"any":
Has anyone seen my bag? - Asks whether anybody in the group of people the question is addressed at has seen the damn bag.
Yes, I saw it! Would be an answer - or quiet stares if not.
Has someone seen my bag? - Asks whether the bag has been seen or not; who's seen it is not questioned here (at least directly).
Yes, we received a report that someone saw it yesterday. Answered by a police officer in our hypothetical "police doing lost&found" scenario.
I'm not a linguist/expert in English so please take my answer as a contribution and not as an authoritative answer.
The OP asked to see further examples, so I played the wildcard (*) with "has someone *" on Google Ngram and these are the results they pulled out
The first most revelatory discovery is the construction "has someone ..." does not appear before 1870. The second, "has someone been..." is by far the most popular choice.
Examples taken from Ngram
When 'anyone' is specific, anyone is replaced by someone. 'I have joint account with someone.' Is right But 'I have joint account with anyone' is not right Because as you have joint account with him, he becomes specific for you.